带聚合函数的嵌套聚合函数

使用TOTAL嵌套并非总是足以应付一切。要获得更通用的嵌套,您必须结合使用高级聚合函数与计算的维度。

示例:  

以下数据已从脚本读取:

有关此数据的显然问题是:“每一名销售代表拥有多少名客户?”

此问题使用标准 QlikView表很容易回答:

根据刚才获得的知识,可能会提出一些新问题:"How may sales representatives have only a single customer? 多少销售代表有三名或更多客户?”

如果您忽略此简单案例中的事实:您可以轻松地手动计数表达式列中的数字,这些是需要二阶聚合顺序的问题类型。计算所需的数据不存在于原始字段中,也无法从原始字段直接计算。

如同新图表中的维度一样,您需要找到在图表中使用表达式列的方法。这可通过使用高级聚合函数获得。

为了将第一个图表的计算作为新图表中的内部图表计算执行,您需要对该维度使用以下语句:

=Aggr(Count(Customer),SalesRep)

然后,您需要输入新图表的以下表达式:

Count(Distinct SalesRep)

DISTINCT限定符是必要的,因为 QlikView 会计算基础表格的行数。

结果表会回答问题“多少名销售代表拥有 1 名、2 名、3 名客户等等?”

必须注意两件事情:

  1. 第二图表不会以任何方式要求第一图表的存在。它是完全自包含的,同时包含维度内定义的第一顺序聚合。
  2. 嵌套的可能性至此未结束。当然,高级聚合函数的维度参数可能包含计算的维度,这反过来又使用高级聚合函数。但是,当经过三级聚合时,放松追踪您正在做的事情相对容易。

另请参阅: