如何为数据表添加重复显示销售总额的total列
为数据表添加sales总和列的实现方案
原始数据表
item_id sales 1 10 2 30 3 70
需求说明
为上述表新增total列,该列每行的值均为sales列的总和(示例中总和为110),最终输出如下:
item_id sales total 1 10 110 2 30 110 3 70 110
实现方法
方法1:窗口函数(推荐,适用于MySQL 8.0+、PostgreSQL、SQL Server等)
利用窗口函数SUM() OVER ()直接计算整张表的sales总和,无需分组:
SELECT item_id, sales, SUM(sales) OVER () AS total FROM your_table_name;
方法2:子查询(兼容低版本数据库)
通过子查询单独计算sales总和,再用交叉连接将结果与原表每行关联:
SELECT t.item_id, t.sales, s.total_sales AS total FROM your_table_name t CROSS JOIN (SELECT SUM(sales) AS total_sales FROM your_table_name) s;
内容的提问来源于stack exchange,提问作者Rezzy
相关产品推荐
相关产品推荐

