获取每行中所有行的总和

时间:2016-01-21 14:14:25

标签: sql sql-server sql-server-2008

是否可以获得每行中所有行的总和。实施例

    Rows | TotalCount
      1  | 120
      2  | 120
      3  | 120
      4  | 120 

现在,我希望获得以下结果。

SQL_Latin1_General_CP1_CI_AS

如果可以在SQL server中帮助。

3 个答案:

答案 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