如何在单独的列中添加值作为累积值?

use*_*707 5 sql-server-2008

COL COL1    COL2    SUM cumm
1   2   3   6    6
4   5   6   15   21 
7   8   9   24   45
Run Code Online (Sandbox Code Playgroud)

在上面的表结果集中我需要像这样的cumm列值,如何使用查询执行此操作,有人可以帮忙吗?

Dev*_*art 3

试试这个——

询问:

DECLARE @temp TABLE
(
      Col1 INT
    , Col2 INT
    , Col3 INT
    , Col4 INT
)

INSERT INTO @temp (Col1, Col2, Col3, Col4)
VALUES 
    (1,   2,   3,   6),
    (4,   5,   6,   15),
    (7,   8,   9,   24)

SELECT 
      Col1
    , Col2
    , Col3
    , Col4
    , SUM_cumm = SUM(Col4) OVER(
        ORDER BY Col4 
        ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
FROM @temp
Run Code Online (Sandbox Code Playgroud)

输出:

Col1        Col2        Col3        Col4        SUM_cumm
----------- ----------- ----------- ----------- -----------
1           2           3           6           6
4           5           6           15          21
7           8           9           24          45
Run Code Online (Sandbox Code Playgroud)