我的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
答案 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;