是否可以获得每行中所有行的总和。实施例
Rows | TotalCount
1 | 120
2 | 120
3 | 120
4 | 120
现在,我希望获得以下结果。
SQL_Latin1_General_CP1_CI_AS
如果可以在SQL server中帮助。
答案 0 :(得分:5)
使用窗口功能:
select t.*, sum(totalcount) over ()
from t;
通常,窗口函数将比join
/聚合解决方案更快。这是一个相当简单的情况,因此性能可能基本相同。
答案 1 :(得分:3)
使用您执行SUM
工作的子查询:
select rows, (select sum(TotalCount) from tablename) as TotalCount
from tablename
或cross join
:
select t1.rows, t2.TotalCount
from tablename t1
cross join (select sum(TotalCount) as TotalCount from tablename) t2
答案 2 :(得分:0)
试试这个,
DECLARE @table TABLE
(
Rows INT,
TotalCount INT
)
INSERT INTO @table
VALUES (1,
20),
(2,
30),
(3,
10),
(4,
60)
DECLARE @total INT=(SELECT Sum(totalcount)
FROM @table)
SELECT rows,
@total AS TotalCount
FROM @table