环境准备
基于中建立的事实表
通过UNION ALL后得到如下报表:
优秀员工薪水公式:CASE WHEN "EMP_FACT"."级别"='A' THEN "EMP_FACT"."薪水" ELSE 0 END
非优秀员工薪水公式:CASE WHEN "EMP_FACT"."级别"='A' THEN 0 ELSE "EMP_FACT"."薪水" END
优秀占比:(CASE WHEN "EMP_FACT"."级别"='A' THEN "EMP_FACT"."薪水" ELSE 0 END)/sum("EMP_FACT"."薪水")
问题分析
出现上述问题的原因是:资料库的【薪水】字段已经是sum
解决这个问题只需要使用原值(不经过聚合的值)即可
公式修改
修改后结果:
然后点击进入分析编辑状态
新增行合计
合计后结果如下:
从图中我们可以看出,合计后的结果是不正确的,直接就是2.78,这种占比在合计结果这应该是=35000/(35000+1700)的,正确值应该是:0.95
此时,我们就可以想到,在占比列使用【服务器复杂聚合】即可实现效果
点击后,发现得不到预期的效果,最后发现:当使用union all或者union时候,无法使用该聚合方式
最终解决该问题的方案是:去掉union 使用【数据透视表属性】中的【包含仅有空值的行/列】