저는 특정 데이터 세트의 차트와 테이블을 작성하는 데 dc.js와 crossfilter를 사용하려고했습니다.DC.js 데이터 테이블을 사용하여 연도별로 집계 데이터가있는 테이블을 만듭니다.
지금까지 구축 차트는 잘 작동하지만 나는 다음과 같이 데이터를 요약하는 작은 HTML 테이블을 구축하기 위해 데이터 테이블 기능을 사용하려면 : 여기에 샘플입니다,
|Year|TotalEmployees|
|2015|555|
|2016|666|
|2017|777|
내 데이터 세트가 20 000 행이 데이터 :
var data = [
{"Year":"2015","Category":"1","NbEmployee":"51"},
{"Year":"2015","Category":"2","NbEmployee":"31"},
{"Year":"2015","Category":"3","NbEmployee":"14"}
{"Year":"2016","Category":"1","NbEmployee":"51"},
{"Year":"2016","Category":"2","NbEmployee":"55"},
{"Year":"2016","Category":"3","NbEmployee":"65"},
{"Year":"2017","Category":"1","NbEmployee":"76"},
{"Year":"2017","Category":"2","NbEmployee":"98"},
];
지금까지 코드의이 작품은 데이터의 행마다 결과의 한 행을 반환하고, 간단한 조작해야처럼 느낌이 있지만, 내가 올바른 구문을 알아낼 수 없습니다
구축하다 나는 .group에 건네 다음 변수로 치수에
.group().reduceSum()
기능을 적용하기 위해 수많은 시간을 시도했습니다
var ndx = crossfilter(data);
var tableDim = ndx.dimension(function(d) {
return d.Year;
});
var datatable = dc.dataTable("#dc-data-table");
datatable
.dimension(tableDim)
.group(function(d) {
d.NbEmployee += d.NbEmployee;
return d.Year;
})
.columns([
function(d) {return d.Year;},
function(d) {return d.NbEmployee;},
]);
() 매개 변수 : 다 년 당 하나 개의 행을 가진 테이블을 요약 ,하지만 난 항상 컴파일 오류로 끝나고, 나는 지금 꽤 우둔 해요.
내가 무엇을 찾고의 SQL 번역은 이것이다 :
SELECT
Year,
NbEmp = SUM(NbEmploye)
FROM DB
GROUP BY
Year
ORDER BY
Year
감사합니다 사전에 도움을!
정보를 제공해 주셔서 감사합니다. 그러나 C# Razor로 데이터 테이블을 구축하기로 결정했습니다. 빌드 할 테이블이 많고 DC.js가 슬프게도 사용자에게 친숙하지 않기 때문입니다. –
확실히 이해할 수 있습니다. - dc.js dataTable은 거의 개념 증명이 아닙니다. 사람들이 더 좋은 것을 원할 때 종종 DataTables.js 또는 유사한 것으로 이동하여 DC 이벤트 및 크로스 필터 데이터에 연결합니다. 나중에이 문제를 접할 수있는 사람은 https://stackoverflow.com/questions/21596616/dc-js-data-table-using-jquery-data-table-plugin에 대한 답변으로 개선 될 수 있지만 기본적으로 올바른 아이디어입니다. – Gordon