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

如何查询全列并按Id分组计算Value列的分组求和值?

正确实现分组求和并保留原列的SQL方案

你的原查询出错原因很明确:子查询里的GROUP BY IDRNC是错误的字段名,应该对应关联的Id;而且这个GROUP BY完全多余——因为WHERE V2.Id = V.Id已经限定了只统计当前Id的所有Value,直接SUM就能得到该分组的总和。

修正后的子查询写法

SELECT 
    Id,
    Value,
    (SELECT SUM(Value) FROM Table V2 WHERE V2.Id = V.Id) AS Sum
FROM Table V;

更高效的窗口函数写法(推荐)

如果你的数据库支持窗口函数(比如MySQL 8+、PostgreSQL、SQL Server等),用窗口函数会更简洁高效,不需要子查询关联:

SELECT 
    Id,
    Value,
    SUM(Value) OVER (PARTITION BY Id) AS Sum
FROM Table;

PARTITION BY Id会按照Id对数据分组,自动计算每个分组内Value的总和,同时保留原表的每一行记录,完美匹配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:30:44