首页 > 解决方案 > 具有其他列值的 SQL SUM 函数

问题描述

我是 SQL 新手。我需要所需的输出。

输入

企业名称 薪水
AAA 1000
BBB 2000

输出

企业名称 薪水 全部的
AAA 1000 3000
BBB 2000 3000

有人能帮我吗?

谢谢

标签: sqlaggregate

解决方案


你可以试试这样的

drop table if exists #batch;
go
create table #batch(
  empname    varchar(10) not null,
  salary     int not NULL);

insert into #batch(empname, salary) values
('aaa', 1000),
('bbb', 2000);

select *, sum(salary) over (order by (select null)) from #batch;
empname salary  TOTAL
aaa     1000    3000
bbb     2000    3000

[编辑] 请注意,在此查询中,ORDER BY 值是可选占位符(按常量或 null 排序不会影响结果)。它可能留空(看起来很奇怪 imo),或者我已经看到一些 SO 答案使用order by (select @@spid)(这也看起来很奇怪 imo)


推荐阅读