【问题标题】:Displaying average value in total column using PivotTable.js使用 PivotTable.js 在总列中显示平均值
【发布时间】:2018-11-02 02:25:40
【问题描述】:

我正在使用 pivotable.js 库,在这个 pivotable.js 中,我想显示总列中所有单元格的平均值,而不是所有单元格值的总和。请看下面的图片,它显示了我想如何在 pivottable.js 中显示值

var average = $.pivotUtilities.aggregatorTemplates.average;
var numberFormat = $.pivotUtilities.numberFormat;
var intFormat = numberFormat({digitsAfterDecimal: 1});

$("#output").pivot(
  [
    {color: "green", shape: "null", value: 0},
    {color: "blue", shape: "circle", value: 1},
    {color: "red", shape: "triangle", value: 2},
    {color: "red", shape: "triangle", value: 12},
    {color: "blue", shape: "circle", value: 3},
    {color: "blue", shape: "triangle", value: 12}
  ],
  {
    rows: ["color"],
    cols: ["shape"],
    aggregator: average(intFormat)(["value"])
  }
);

能否请您告诉我如何实现这一目标。这是小提琴

https://jsfiddle.net/dky0hh1y/5/

我的自定义聚合器

 var successRate = function() {
  return function() {
    return {
      sumSuccesses: 0,
      sumTrials: 0,
      push: function(record) {
        if (!isNaN(parseFloat(record.student))) {
          this.sumSuccesses += parseFloat(record.student);
        }

      },
      value: function() { return this.sumSuccesses },
      format: function(x) { return x; },
      numInputs: 0
    };
  };
};

谢谢

【问题讨论】:

    标签: jquery pivottable.js


    【解决方案1】:

    PivoTable.js 对所有单元格使用相同的聚合函数,无论是否总计。如果您想在总行/列中使用不同的计算值的方法,则需要编写自己的自定义聚合器。这是https://github.com/nicolaskruchten/pivottable/wiki/Aggregators的文档

    【讨论】:

    • 我只使用自定义聚合器,请查看编辑后的问题。从自定义聚合器函数中如何找出 Total col 或 row,以便我可以应用不同的逻辑进行总计算
    猜你喜欢
    • 2018-11-02
    • 1970-01-01
    • 2023-03-13
    • 2017-04-12
    • 2017-10-25
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    相关资源
    最近更新 更多