在SQL Server中的行方式和

时间:2014-04-09 08:25:57

标签: sql sql-server

我有一张表如下: 表1

Col1    Col2   Col3
1        A      10
2        B      20
3        C      30
4        D      40
5        E      50

我想要输出如下:

输出:

Col1    Col2    Col3    Row-Wise-Sum
1       A       10      10
2       B       20      30
3       C       30      60
4       D       40      100
5       E       50      150

2 个答案:

答案 0 :(得分:1)

这也被称为"运行总数"或"累积金额"。如果您在" SQL"中搜索任何这些术语。你会发现很多关于如何做到这一点的建议。

这是一个使用SQL Server 2012或更新版本中的窗口函数的答案:

SELECT Col1, Col2, Col3,
    SUM(Col3) OVER (ORDER BY Col1 ROWS UNBOUNDED PRECEDING) AS [Row-Wise-Sum]
FROM
    MyTable
ORDER BY Col1

答案 1 :(得分:1)

你说的累计总数

SELECT Table1.Col1, Table1.Col2, Table1.Col3, (SELECT SUM(Col3)
                       FROM Table1
                       WHERE Col1 <= Table1.Col1)
FROM   Table1
ORDER BY Table1.Col1;