求助:基于唯一idCampaign汇总多列求和时出现重复id的SQL问题
解决idCampaign重复并计算CVT总和的方法
核心是通过分组聚合确保每个idCampaign仅出现一次,同时计算对应CVT字段的累计总和。
完整SQL示例
假设你的查询涉及包含idCampaign和各类CVT字段的表,调整后的SQL语句如下:
SELECT idCampaign, SUM(CVT.low_cvt) + SUM(CVT.med_cvt) + SUM(CVT.high_cvt) + SUM(CVT.other_cvt) AS 'All CVT' FROM 你的实际表名 -- 替换为你使用的表名 GROUP BY idCampaign;
关键说明
- 使用
SUM()函数对每个CVT字段按idCampaign分组求和,重复的idCampaign会被合并,计算出该ID对应所有记录的CVT总和。 - 必须通过
GROUP BY idCampaign指定分组依据,保证结果集中每个idCampaign唯一。
如果原始查询包含关联表或过滤条件,只需将这些逻辑补充到对应位置即可:
SELECT idCampaign, SUM(CVT.low_cvt) + SUM(CVT.med_cvt) + SUM(CVT.high_cvt) + SUM(CVT.other_cvt) AS 'All CVT' FROM 你的实际表名 JOIN 关联表 ON 关联匹配条件 WHERE 分组前过滤条件 -- 例如时间范围、状态筛选等 GROUP BY idCampaign HAVING SUM(CVT.low_cvt) > 0; -- 分组后的过滤需求
内容的提问来源于stack exchange,提问作者Mohd Sameer
相关产品推荐
相关产品推荐

