QlikView 中的 TOTAL 与 Aggr

TOTAL vs Aggr in QlikView

我正在尝试了解 TOTALAggr 在 QlikView 中的工作方式。有人可以解释下面两个例子之间的区别吗,如果可能的话请用 SQL 查询来说明?

示例 1:

Max({<Field1=>} Aggr(Sum({<Field2={'Value'}, Field1=>} StuffCount), Field1))

示例 2:

Max({<Field1=>} TOTAL Aggr(Sum({<Field2={'Value'}, Field1=>} StuffCount), Field1))

TOTAL 关键字在 charts/pivot table 秒内很有用。它对 chart/pivot 中的每个数据点应用相同的计算,与维度无关。

因此 - 如果您将表达式放入数据透视表 table - 第一个选项可能会在每个单元格中显示不同的值(如果 Aggr 相关),而第二个选项将产生相同的值。

Aggr 函数允许对不同的组进行双重聚合(求和的平均值、计数的最大值等)。

不确定您在本示例中使用 SQL 查询的意思。无论如何,假设您有这个客户 (CustomerID) 和销售 (Sales) 列表:

客户 ID/销售

  • 客户 1 25
  • 客户 2 20
  • 客户 1 10
  • 客户 1 5
  • 客户 1 20
  • 客户 3 30
  • 客户 2 30

然后您想在具有维度 CustomerID 和两个表达式的数据透视表 table 上显示它:

  1. Max(Aggr(Sum(Sales), CustomerID)) // 第一个客户显示 60,第二个客户显示 50,第三个客户显示 30
  2. Max(TOTAL Aggr(Sum(Sales),CustomerID)) //这会在你的每一行显示60table(这是所有客户的最大销售额)

所以基本上 AGGR 使用第二个 (CustomerID) 的维度创建一个时间列表,其中包含您在第一个函数输入(在本例中为 sum(Sales))中输入的任何内容。然后您可以对该列表执行操作(例如 Max、Min、Avg...)。如果您编写 TOTAL 并在主元 table 中使用表达式,那么您 'ignore' 可能会影响操作的维度。 希望对你有帮助