QLIK Sense如何按col1、col2、col3三列组合去重后对myColumn求和
正确Qlik Sense表达式写法
你要实现按col1、col2、col3三列组合去重后求和myColumn,可直接使用如下表达式:
Num(Sum(DISTINCT Aggr(Only(mycolumn), col1, col2, col3)), '# ##0.00')
逻辑说明
Aggr(mycolumn, col1, col2, col3)相当于SQL中的GROUP BY col1, col2, col3,会把三列值完全一致的记录归为同一个聚合组Only(mycolumn)用于返回每个聚合组内的mycolumn值,你的示例数据中同一三列组合下mycolumn值完全一致,该函数可以正确取到每组的唯一值- 最后用
Sum(DISTINCT)对每个聚合组的返回值求和,即可得到你要的汇总结果,代入你的示例数据计算结果正好为90.24
兼容场景扩展
如果业务中存在同一三列组合下mycolumn值不同的情况,可将Only替换为Sum,写法如下:
Num(Sum(DISTINCT Aggr(Sum(mycolumn), col1, col2, col3)), '# ##0.00')
该写法会先对每个三列组合的mycolumn求和,再对所有组合的求和结果汇总,适配更通用的场景。
内容的提问来源于stack exchange,提问作者PsyBreaks
相关产品推荐
相关产品推荐

