如何获得累计总和

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

回答:

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

| ID | SOMENUMT | SUM |

-----------------------

| 1 | 10 | 10 |

| 2 | 12 | 22 |

| 3 | 3 | 25 |

| 4 | 15 | 40 |

| 5 | 23 | 63 |

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

以上是 如何获得累计总和 的全部内容, 来源链接: utcz.com/qa/415940.html

回到顶部