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

如何在分组后正确SUM NewConverts列值?SQL查询求助

解决关联查询后SUM值异常翻倍的SQL问题

问题根源:tbl_cmreport与tbl_cmleader通过mem_id关联时,单个mem_id在tbl_cmleader中对应多条记录,导致tbl_cmreport的每条数据被重复匹配,最终SUM(nconvt)重复计算了相同的数值,出现总和远超预期的情况。

修改后的SQL查询(推荐方案)

SELECT 
    cr.mdate AS MDate,
    WEEK(cr.mdate) AS MWeek,
    WEEK(NOW()) AS CWeek,
    SUM(cr.nconvt) AS NewConverts,
    cl.cml_id,
    cl.grp_id
FROM (
    -- 先按mem_id和日期聚合报表数据,避免关联后重复计算
    SELECT mem_id, mdate, SUM(nconvt) AS nconvt
    FROM tbl_cmreport
    WHERE mdate = '2022-07-08'
    GROUP BY mem_id, mdate
) cr
INNER JOIN tbl_cmleader cl 
    ON cr.mem_id = cl.mem_id
WHERE cl.grp_id = 12
GROUP BY cr.mdate, cl.cml_id, cl.grp_id

方案说明

  1. 先通过子查询对tbl_cmreport按mem_id和mdate分组求和,确保每个mem_id在指定日期下只有一条汇总记录,避免后续关联时产生重复行。
  2. 将子查询的结果与tbl_cmleader关联,再按mdate和cml_id分组,得到每个cml_id对应的正确NewConverts总和。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:36:17