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

如何对查询返回的唯一行值按分组维度求和并生成汇总列

需求实现方案

你可以使用SQL的窗口聚合函数SUM() OVER()来实现该需求,不需要嵌套子查询或者额外的GROUP BY拼接,就能直接在原有查询结果基础上新增求和列。

示例语法

假设你的表字段为:

  • invoice_id:发票编号,也就是示例中17895对应的字段
  • fee_amount:即"Fee Amounts Per Fee"列对应的金额字段
  • 其他你原有查询的字段

在你原有查询的SELECT列表中新增如下列即可:

SUM(fee_amount) OVER (PARTITION BY invoice_id) AS invoice_total_fee

效果说明

  • PARTITION BY invoice_id 会按发票编号对所有数据分组
  • 同个发票编号下的所有行都会返回该组所有fee_amount的总和,和你预期的Excel效果完全一致
  • 不会影响原有查询返回的其他字段和行数据,不需要调整原有查询的其他逻辑

旧版本数据库兼容方案(不支持窗口函数时使用)

如果你的数据库版本不支持窗口函数,可以用关联子查询的方式实现:

SELECT 
    t.*,
    (SELECT SUM(fee_amount) FROM your_table t2 WHERE t2.invoice_id = t.invoice_id) AS invoice_total_fee
FROM your_table t
-- 这里保留你原有查询的WHERE等其他逻辑

内容的提问来源于stack exchange,提问作者Learn SQL-ing

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:54:03