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

SQL Server GROUP BY分组时按条件对两列之一求和实现问题

SQL Server动态选择列分组求和解决方案

核心实现思路:将判断逻辑放在SUM聚合函数内部,逐行选择需要累加的列值,再按Station、Location、Contact三个维度分组聚合即可,无需使用窗口函数。

实现代码

SELECT 
    Station,
    Location,
    Contact,
    SUM(
        CASE 
            WHEN ColToUse = 1 THEN ColToSum
            WHEN ColToUse = 2 THEN AltColToSum
            ELSE 0 -- 处理ColToUse异常值,可根据实际需求调整
        END
    ) AS TotalSum
FROM 你的业务表名 -- 替换为实际表名
GROUP BY Station, Location, Contact

结果校验

以上代码运行后会完全匹配你提供的预期输出:

  • Station 1 合计:4 + 10 + 2 +7 = 23
  • Station 2 合计:5 + 10 + 10 = 25
  • Station 3 合计:5 +10 +10 +1 =26

常见错误说明

之前使用CASE搭配GROUP BY未得到正确结果,大概率是将CASE语句写在了GROUP BY子句中,会额外拆分分组维度,导致输出行数超出预期;或者将CASE放在聚合函数外部,未正确逐行计算取值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:39:03