如何根据crossfilter中的另一个维度分组对一个维度进行分组?

时间:2017-05-30 11:44:28

标签: dc.js crossfilter

在我的问题中,我有关于客户和卖家的数据:

customer, seller, amount
cus1, sel1, 78
cus2, sel1, 34
cus3, sel2, 25
cus2, sel1, 13
cus2, sel1, 11
cus3, sel2, 18
cus4, sel3, 50

...我想知道每个卖家有多少客户。因此,我想构建一个行图,显示拥有最多客户的前10名卖家。

我试过了:

this.sellerDim = this.ndx.dimension(function(d: any) {return d.seller;});
this.customerDim = this.ndx.dimension(function(d: any) {return d.customer;});

this.sellerCount = this.sellerDim.group();

我也尝试过这样的事情:

this.sellerCount = this.sellerDim.group().reduceSum(function(d:any){return d.customerDim});

......但它没有成功。

显示我正在使用的图表:

this.topSellerChart = dc.rowChart("#chart-row");

this.topSellerChart.data(function(d: any){
                                return d.order(function (d: any) {
                                    return d;
                                }).top(10);
                             })
                      .dimension(this.sellerDim)
                      .group(this.sellerCount)
                      .elasticX(true)
                      .controlsUseVisibility(true);

无论如何我确信这个错误是在.group()创造期间。

那么,是否有人知道我如何对卖家进行分组而不计算一次同一个客户

0 个答案:

没有答案