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

SQL如何对表行按产品分组求和并生成独立汇总表

实现方案

核心逻辑说明

你需要的是按产品维度聚合求和的结果,不需要保留原表的明细行,直接用GROUP BY分组聚合即可,比窗口函数OVER更适配这个场景。窗口函数会保留原表的所有行数,无法直接得到每个产品对应一行的聚合结果,除非额外去重,性能更低。

1. 仅查询汇总结果(不生成物理表)

直接执行以下SQL即可得到你需要的输出格式:

SELECT
  Product,
  SUM(Price) AS Total_price
FROM 替换为你的原表名
GROUP BY Product;

2. 生成独立的永久存储汇总表

不同数据库的语法略有差异:

  • MySQL、PostgreSQL等通用写法:
CREATE TABLE product_total_price AS
SELECT
  Product,
  SUM(Price) AS Total_price
FROM 替换为你的原表名
GROUP BY Product;
  • SQL Server 专属写法:
SELECT
  Product,
  SUM(Price) AS Total_price
INTO product_total_price
FROM 替换为你的原表名
GROUP BY Product;

3. 生成临时汇总表(仅当前会话有效,会话关闭自动删除)

  • MySQL、PostgreSQL写法:
CREATE TEMPORARY TABLE temp_product_total AS
SELECT
  Product,
  SUM(Price) AS Total_price
FROM 替换为你的原表名
GROUP BY Product;
  • SQL Server写法:
SELECT
  Product,
  SUM(Price) AS Total_price
INTO #temp_product_total
FROM 替换为你的原表名
GROUP BY Product;

补充:窗口函数的适配写法(不推荐)

如果必须使用OVER窗口函数实现,需要额外加DISTINCT去重,性能比GROUP BY差,示例如下:

SELECT DISTINCT
  Product,
  SUM(Price) OVER(PARTITION BY Product) AS Total_price
FROM 替换为你的原表名;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:36:03