回答

收藏

如何获得累计总和

技术问答 技术问答 239 人阅读 | 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
    / ]* b+ e5 ]  _% D$ \7 G
以上选择返回我以下。/ T, @9 W( S, g; R: z! S
    id  SomeNumt 102   123  34   1555  236 G7 G, [  @' y8 c& ]
如何得到以下:( N+ G3 {* Q* J

    & j5 c# ^8 I# x% m) l
  • id  srome   CumSrome1 10 10 102 12  2233  254   155  405  233 code]               2 \2 Q$ Y5 S$ F0 V  N6 B/ a
  •     解决方案:                                                                                                                               [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/ z; A- I1 L2 ?5 @
输出0 `0 ^1 s& y1 s/ O0 N2 _5 w
    | ID | SOMENUMT | SUM |-----------------------|  1 |    10                       10 |  10 ||  2 |        122            |  22 ||  3 |         3 3   3                      |  25 ||  4 |        155          |  40 ||  5 |         233     |  63 |
    * k) j. E. K* r' i: j) G; p
编辑:这是大多数数据库平台的通用解决方案。如果您的特定平台上有更好的解决方案(例如,gareth’s),请使用它!
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则