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

SQL分组求和问题:按ID和Length分组后计算Weight总和

解决方案

分两步就能实现你要的效果:

第一步:生成按ID+Length分组的聚合结果

用GROUP BY子句按ID和Length分组,同时对每组的Weight做聚合(看你给出的示例结果,每组对应单个Weight值,若原始数据中ID+Length组合有多条记录,用SUM()求和即可;若本身就是单条记录,用聚合函数也能保证语法规范):

SELECT 
    ID, 
    Length, 
    SUM(Weight) AS Weight
FROM MyTable
WHERE `Group` IN ('A1', 'A2')  -- Group是SQL关键字,需用反引号(MySQL)或方括号(SQL Server)转义
GROUP BY ID, Length

执行这条语句就能得到你想要的分组结果表格。

第二步:计算分组结果的Weight总和

把上面的分组查询作为子查询,在外层直接对Weight列求和:

SELECT SUM(Weight) AS Total_Weight
FROM (
    SELECT 
        ID, 
        Length, 
        SUM(Weight) AS Weight
    FROM MyTable
    WHERE `Group` IN ('A1', 'A2')
    GROUP BY ID, Length
) AS GroupedData

额外注意

如果你的Weight列存储的是带逗号的字符串(比如示例中的2,2),必须先转换为数值类型才能进行聚合计算。以MySQL为例,可以这样处理:

SELECT 
    ID, 
    Length, 
    SUM(CAST(REPLACE(Weight, ',', '.') AS DECIMAL(10,2))) AS Weight
FROM MyTable
WHERE `Group` IN ('A1', 'A2')
GROUP BY ID, Length

其他数据库的类型转换语法略有差异,比如SQL Server可使用CAST(REPLACE(Weight, ',', '.') AS NUMERIC(10,2))。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 21:15:42