回答

收藏

如何获得累计总和

技术问答 技术问答 275 人阅读 | 0 人回复 | 2023-09-12

    declare  @t table    (        id int,       SomeNumt int    )insert into @tselect 1,10unionselect 2,12unionselect 3,3unionselect 4,15unionselect 5,23select * from @t  g9 }2 G2 u0 f5 J$ r; h
以上选择返回我以下。
& D8 h% T+ \, \) I! p2 n7 J: L
    id  SomeNumt 102   123  34   1555  23  \* J! e5 l' z9 S
如何得到以下:2 R7 w  d" v' H0 U% d% N
    / X) ]' H& M8 |1 z' K
  • id  srome   CumSrome1 10 10 102 12  2233  254   155  405  233 code]               
    + G  G/ X3 [; x% J: Z5 I
  •     解决方案:                                                                                                                               [code]select t1.id,t1.SomeNumt,SUM(t2.SomeNumt) as sumfrom @t t1inner join @t t2 on t1.id >= t2.idgroup by t1.id,t1.SomeNumtorder by t1.id
    6 h/ l( T7 w+ g: }  f$ K9 C
输出
1 H+ i* T% Q* q) f* C1 X
    | ID | SOMENUMT | SUM |-----------------------|  1 |    10                       10 |  10 ||  2 |        122            |  22 ||  3 |         3 3   3                      |  25 ||  4 |        155          |  40 ||  5 |         233     |  63 |
    , s8 l! e/ m* ~2 @: V
编辑:这是大多数数据库平台的通用解决方案。如果您的特定平台上有更好的解决方案(例如,gareth’s),请使用它!
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则