首页 > 解决方案 > 将前一行的值添加到当前行

问题描述

我有一个简单的表,我想将前一行的值添加到当前行中,并将当前行的值添加到下一行中,这样它就会一直持续到最后。

请看下表数据。

ID  Value ValueIncrement 
1     2          0
2     3          5  (2+3)
3     9          14 (2+3+9)
4     6          20 (2+3+9+6)
5     3          23 (2+3+9+6+3) 
6     1          24 (2+3+9+6+3+1)  
7     2          26 (2+3+9+6+3+1+2)
8     0          26 (2+3+9+6+3+1+2+0)
9     2          30 (2+3+9+6+3+1+2+0+2)

我正在寻找一个可以让我连续添加值的选择查询。

标签: sqlsql-serverselectsumsql-server-2014

解决方案


你可以做一个窗口总和:

select id, value, sum(value) over (order by id) valueincrement
from mytable
order by id

SQL Server 2014 Fiddle 上的演示

编号 | 价值 | 增值
-: | ----: | -------------:
 1 | 2 | 2
 2 | 3 | 5
 3 | 9 | 14
 4 | 6 | 20
 5 | 3 | 23
 6 | 1 | 24
 7 | 2 | 26
 8 | 0 | 26
 9 | 2 | 28

推荐阅读