计算与两行总和相关的T-SQL查询中两行的总和

时间:2016-10-08 13:39:04

标签: sql sql-server

我的SQL查询与两行的总和有关:

t  |  sum of t
1  |     1       |  (1 + 0) = 1   the output of sum of t come like this    
1  |     2       |  (1 + 1) = 2    
1  |     3       |  (2 + 1) = 3
0  |     3       |  (3 + 0) = 3
1  |     4       |  (3 + 1) = 4

1 个答案:

答案 0 :(得分:2)

您似乎想要累积总和。这需要一个指定表中行的顺序的列。请记住,表格代表无序集合,因此您需要一个列来指定排序。

假设您有这样一个列,在SQL Server 2012+中,您可以使用:

select col1, sum(col1) over (order by id)
from t;

其中id是排序列。

在早期版本中,您有几个选项,其中没有一个是高效的。以下是使用相关子查询的一种方法:

select col1,
       (select sum(t2.col1) 
        from t as t2
        where t2.id <= t.id
       ) as cume_sum
from t;