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

如何在返回ColumnA的SQL查询中新增SUM(ColumnA) AS ColumnB汇总列

错误原因

你编写的SQL直接使用了SUM()聚合函数但未指定GROUP BY子句,数据库会将整张表的所有行聚合为单一结果行,无法同时保留每行的ColumnA原始值和全局总和,不符合每行都展示总合计的需求。

正确实现方案

方案1:使用窗口函数(推荐,适配MySQL 8.0+、PostgreSQL、SQL Server、Oracle等主流现代数据库)

窗口函数OVER()不加分区条件时,会基于整张表的结果计算全局总和,完美匹配你的需求:

SELECT
    ColumnA,
    SUM(ColumnA) OVER () AS ColumnB
FROM 
    `Table`

方案2:子查询关联(兼容不支持窗口函数的老版本数据库)

先通过子查询计算出ColumnA的全局总和,再和原表做笛卡尔积关联,把总和拼到每一行上:

SELECT
    t.ColumnA,
    total.sum_a AS ColumnB
FROM 
    `Table` t,
    (SELECT SUM(ColumnA) AS sum_a FROM `Table`) total

两种方案运行后都会得到你预期的效果,每行ColumnB固定为所有ColumnA的总和37。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:06:04