簡體   English   中英

帶偽函數的pivot.js摘要

[英]pivot.js summary with pseudofunctions

我遇到了一些麻煩,盡管有一個摘要字段的偽函數,其中有兩個字段的划分。

最初的兩個字段是:

{name: 'purchasers',    type: 'integer',  rowLabelable: false, summarizable: 'sum', displayFunction: function(value){ return accounting.formatNumber(value)}},    
{name: 'spend',    type: 'float',  rowLabelable: false, summarizable: 'sum', displayFunction: function(value){ return accounting.formatMoney(value)}}

偽函數為:

{
    name: 'spendperpurch', type: 'float', pseudo: true,      
    pseudoFunction: function(row){ return row.spend / row.purchasers },       
    summarizable: 'sum', displayFunction: function(value){ return accounting.formatMoney(value)}    
}

而且它不是從Granu聚合而來的

我想做的基本上是通過過濾器而不是a來進行sum(row.spend)/ sum(row.purchasers)分組

對於Σ行(row.spend / row.purchasers)中的i,這是當前正在發生的情況。

例如,如果我有100行計算出的字段支出/購買者

date, purchasers, spend, spendperpurch
1   , 10        , 100  , 10
2   , 15        , 200  , 13.3

如果在我的桌子上我只想要

purchasers, spend, spendperpurch

當前代碼給我:

purchasers, spend, spendperpurch
25        , 300  , 23.3

我真正想要的是:

purchasers, spend, spendperpurch
25        , 300  , 12

有任何想法嗎? 我將不勝感激任何幫助!

我研究了此內容,因為最近需要這樣做。

pseudoFunction屬性不支持此功能,因為它僅在加載CSV時逐行運行。

相反,您要使用自定義匯總功能。 試試這個例子:

var fields=[
    {name:"purchasers", type:"float", summarizable:"sum"},
    {name:"spend", type:"float" summarizable:"sum"},
    {name:"spendperpurch", type:"float",
     summarizable:true,
     summaryFunction:function(rows,field){
        var totalPurchasers=0, totalSpend=0, i=0;
        for(i=0;i<rows.length;i++){
            totalPurchasers+=rows[i]["purchasers"];
            totalSpend+=rows[i]["spend"];
        }
        if(totalPurchasers==0){return 0; /*or whatever you want*/}
        return totalSpend/totalPurchasers;
     }
    ];

編輯:根據其他用戶(我沒有測試它自己),在庫中,字段屬性的新版本summaryFunction現在被稱為summarizeFunction ,所以如果上述方法不為你工作,嘗試改變這種屬性的名稱

{
  name: 'spendperpurch', type: 'float', pseudo: true, summarizable: 'avg',      
  pseudoFunction: function(row)
  { 
     return row.spend / row.purchasers 
  },       
  displayFunction: function(value)
  { 
     return accounting.formatMoney(value)
  }    
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM