透视表中的行总和
QlikView 垂直表可以从简单的行总和和计算表达式总计两者之中选择所需的总计。QlikView 透视表缺乏此项选择。透视表总计总是计算为表达式总计。
这通常是好事,因为当两者不同时,行总计的总和极少相关。
发出该警告后,以下部分将会显示一个示例,其中行总计总和是期望的结果。
示例:
本例是一场学校竞赛,每支队伍三名成员,按年级分三个班各自得分。团队可以选择每个班级组内的最高分,然后添加三个最高分用于总计。以下数据已从脚本读取:
将 Class 作为维度且将 Max(Score) 作为表达式的垂直表将产生以下行数之和:
如果将垂直表转换为始终作为表达式总计而不是行数之和进行计算的透视表,则可能会出现问题:
在此特定实例中,12 正是我们期望的总计数,而 5 是错误的总计数。在这种情况下,Aggr 函数可在表达式(而非维度)中使用。
原始表达式被包含在 Aggr 函数中,周围图表的维度也用作 Aggr 函数中的维度。现在使用此捆绑作为 Sum 聚合的参数。该表显示会显示预期总计数据:
高级聚合函数的美妙之处在于,它在个别行内仅评估单个值。这是因为维度显然仅在每个普通数据行上拥有一个正值。由于内部维度和表达式与周围图表的相同,因此每个值当然与不带封闭性 Sum 和高级聚合函数的结果完全相同。
但是,对于总计行,高级聚合函数会返回三个值,一个值对应维度字段的每个值。这些反过来又会借助 Sum 聚合计算总和。尽管仍然是正式的表达式合计,但结果等于行总和合计。