SQL Sum和条件分组

时间:2017-01-27 02:37:01

标签: sql sql-server database

我有一个包含序列的表,并计算每个项目。我试图提出一个在结果中添加额外列的查询,这样在新列中每行/项都将包含所有项目的总和'计数的顺序低于项目。

e.g:

items   [...]   seq    counts
a       [...]    1       1
b       [...]    2       1
c       [...]    3       8
d       [...]    4       2
a       [...]    1       1
e       [...]   null     1

结果:

items   [...]   seq    counts  sum
a       [...]    1       1   (doesnt matter, could be 0 or 1)
b       [...]    2       1      1
c       [...]    3       8      2
d       [...]    4       2     10
a       [...]    1       1   (doesnt matter, could be 0 or 1)
e       [...]   null     1   (doesnt matter)
f       [...]    5       10    12

我不知道如何用这样的条件来总结一些东西。我只知道如何进行分组并总结一组中的所有项目。子查询不适合我

1 个答案:

答案 0 :(得分:3)

您正在寻找累计金额。您可以使用outer apply

执行此操作
select t.*, t2.sumcounts
from t outer apply
     (select sum(t2.counts) as sumcounts
      from t t2
      where t2.seq < t.seq
     ) t2;