全部产品
    如何排查聚合度量计算结果不符合预期问题

如何排查聚合度量计算结果不符合预期问题

更新时间:2018-08-31 14:52:04

测试数据

这里用一个员工的汇总表来做为测试数据:
入职年份
部门编号
员工数量
总薪资
1981
10
2
7450.0
1982
10
1
1300.0
1980
20
1
800.0
1981
20
2
5975.0
1987
20
2
4100.0
1981
30
6
9400.0

问题描述

希望计算每个部门的平均薪资,于是在编辑数据集处,创建了一个计算度量,如下图所示:
并设置员工数量、总薪资的默认聚合方式为求和,平均薪资的聚合方式为平均值并保存。
在工作表中查询数据,平均薪资计算结果错误,如下图所示:

问题原因

计算度量分成两种:普通度量和聚合度量。普通度量可以当成一个新的字段,可以再自定义聚合方式。而聚合度量是已经设置好聚合表达式。
此问题中需要的是一个聚合度量 case when sum([员工数量]) <=0 then 0.0 else sum([总薪资])/sum([员工数量]) end。而实际配置的是 case when [员工数量] <=0 then 0.0 else [总薪资]/[员工数量] end,导致最后的计算结果实际上变成了 avg(case when [员工数量] <=0 then 0.0 else [总薪资]/[员工数量] end)

解决方案

修改平均薪资的计算公式,改成前面提到的 case when sum([员工数量]) <=0 then 0.0 else sum([总薪资])/sum([员工数量]) end。修改后,Quick BI自动识别度量为聚合度量,不再设置默认聚合方式。保存后,在工作表里重新配置,正确结果如下图所示: