小编典典

如何获得累积总和

all

declare @t table
(
id int,
SomeNumt int
)

insert into @t
select 1,10
union
select 2,12
union
select 3,3
union
select 4,15
union
select 5,23


select * from @t

上面的选择返回我以下。

id  SomeNumt
1   10
2   12
3   3
4   15
5   23

我如何获得以下信息:

id  srome   CumSrome
1   10  10
2   12  22
3   3   25
4   15  40
5   23  63

阅读 70

收藏
2022-06-14

共1个答案

小编典典

select t1.id, t1.SomeNumt, SUM(t2.SomeNumt) as sum
from @t t1
inner join @t t2 on t1.id >= t2.id
group by t1.id, t1.SomeNumt
order by t1.id

sqlfiddle

输出

| ID | SOMENUMT | SUM |
-----------------------
|  1 |       10 |  10 |
|  2 |       12 |  22 |
|  3 |        3 |  25 |
|  4 |       15 |  40 |
|  5 |       23 |  63 |

编辑: 这是一个通用的解决方案,适用于大多数数据库平台。当您的特定平台(例如,gareth’s)有更好的解决方案时,请使用它!

2022-06-14