Tlial vs Qgrkview中的Aggr

时间:2017-06-08 22:15:18

标签: qlikview

我试图了解TOTAL和Aggr如何在qlikview中工作。有人可以解释下面两个例子之间的区别,如果可能的话请用sql查询说明吗?

代码:

Example1:

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


Example2:

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

2 个答案:

答案 0 :(得分:2)

在此示例中,不确定您的意思和SQL查询。无论如何,想象一下你有这个客户(CustomerID)和销售(销售)列表:

CustomerID / Sales

  • Customer1 25
  • Customer2 20
  • Customer1 10
  • Customer1 5
  • Customer1 20
  • Customer3 30
  • Customer2 30

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

  1. Max(Aggr(Sum(Sales), CustomerID)) //这将为第一位客户显示60,第二位客户显示50,第三位客户显示30
  2. Max(TOTAL Aggr(Sum(Sales),CustomerID)) //这将在您表格的每一行显示60(这是所有客户的最大销售额)
  3. 所以基本上AGGR使用第二个(CustomerID)的维度创建一个时间列表,列出你在第一个函数输入中放入的任何内容(在本例中为sum(Sales))。然后,您可以对该列表执行操作(例如Max,Min,Avg ...)。如果你写TOTAL并在数据透视表中使用表达式,那么你就忽略了&#39;可能影响操作的维度。 希望它有所帮助

答案 1 :(得分:1)

TOTAL关键字在图表/数据透视表中很有用。它对图表/数据透视图中的每个数据点应用相同的计算,并且具有维度的独立性。

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

Aggr函数允许在不同的基础上进行双重聚合(平均值,最大值计数等)。