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

使用GROUP BY分组时无法汇总全部Quantity的SQL问题求助

问题分析与解决方案

你的查询无法得到总汇总25的原因是GROUP BY子句使用了原始字段Data_Code,每条不同的Data_Code会被单独分组,导致两条记录各自返回求和结果,而不是合并为一行计算总和。

从示例数据来看,两条Data_Code生成的MyNewColumn都是FW22(第3位都是2,走ELSE分支,拼接前两位22),因此需要基于生成的MyNewColumn进行分组,才能得到期望的25。

修正方案一:直接匹配SELECT中的计算表达式分组

将GROUP BY子句替换为SELECT里的完整计算逻辑,确保分组依据与生成的MyNewColumn一致:

SELECT CASE SUBSTRING(Data_Code, 3,1) 
         WHEN '1' THEN 'SS' 
         ELSE 'FW' 
       END + SUBSTRING(Data_Code, 1,2) AS [MyNewColumn],
SUM(QUANTITY) AS TotalQuantity
FROM [MyTable]
GROUP BY CASE SUBSTRING(Data_Code, 3,1) 
         WHEN '1' THEN 'SS' 
         ELSE 'FW' 
       END + SUBSTRING(Data_Code, 1,2)

修正方案二:使用CTE/子查询提升可读性

先通过CTE(公共表表达式)生成转换后的MyNewColumn,再基于该列分组求和,代码更易维护:

WITH CTE_Transformed AS (
    SELECT 
        CASE SUBSTRING(Data_Code, 3,1) 
            WHEN '1' THEN 'SS' 
            ELSE 'FW' 
        END + SUBSTRING(Data_Code, 1,2) AS [MyNewColumn],
        QUANTITY
    FROM [MyTable]
)
SELECT MyNewColumn, SUM(QUANTITY) AS TotalQuantity
FROM CTE_Transformed
GROUP BY MyNewColumn

执行上述任意一种查询,都会返回如下结果:

MyNewColumnTotalQuantity
FW2225

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:00:57