You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qlik Sense按ID1去重求和:合计正确但明细金额显示为0的问题

Qlik Sense 实现明细正常显示+按ID1去重计算总计金额

问题背景

示例数据生成SQL:

SELECT 1 ID1, 1 ID2, 100 Amount FROM dual UNION ALL
SELECT 1 ID1, 2 ID2, 100 Amount FROM dual UNION ALL
SELECT 1 ID1, 3 ID2, 100 Amount FROM dual UNION ALL
SELECT 2 ID1, 1 ID2, 500 Amount FROM dual UNION ALL
SELECT 2 ID1, 2 ID2, 500 Amount FROM dual;

默认情况下Qlik Sense输出的总计金额为1300(所有Amount直接累加),但业务需求为:

  • 总计金额需按ID1去重计算:每个ID1仅统计一次其对应的Amount值,最终总计应为100+500=600
  • 明细行需保持原Amount值正常显示

尝试使用社区方案Sum(Aggr(Sum(DISTINCT Amount), ID1))后,明细行除首条外均显示0,无法满足需求。

预期输出效果:

ID1ID2Amount
Totals600
11100
12100
13100
21500
22500

解决方法

替换原Amount度量为以下条件表达式:

If(Dimensionality() = 0, Sum(Aggr(Sum(DISTINCT Amount), ID1)), Sum(Amount))

逻辑说明

  • 总计行判断:Dimensionality() = 0用于识别当前行是否为总计行(无维度层级),此时执行Sum(Aggr(Sum(DISTINCT Amount), ID1))——先按ID1分组计算去重后的金额和,再汇总得到符合要求的总计值600。
  • 明细行处理:非总计行(即明细行)直接执行Sum(Amount),确保每行的Amount值正常显示。

内容的提问来源于stack exchange,提问作者rhemmuuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 04:32:40