代码之家  ›  专栏  ›  技术社区  ›  Bak

按增量Postgres求和

  •  2
  • Bak  · 技术社区  · 7 年前

    如何计算每周的积分之和?

    表:Essai

    这是表,最后一列(sum)是我想要得到的结果。

    Table

    2 回复  |  直到 7 年前
        1
  •  1
  •   Mureinik    7 年前

    您可以使用 sum 以下内容:

    SELECT *,
           SUM(opints) OVER (ORDER BY number_week ASC
                             ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
    FROM   essai
    
        2
  •  0
  •   Vao Tsun    7 年前

    如果:

    db=# create table m (w int, n text, p int);
    CREATE TABLE
    db=# insert into m values (4,'a',2),(3,'a',6),(2,'a',1),(1,'a',3);
    INSERT 0 4
    

    然后:

    db=# with c as (select *,sum(p) over (partition by n order by w) from m)
    select * from c order by w desc;
     w | n | p | sum
    ---+---+---+-----
     4 | a | 2 |  12
     3 | a | 6 |  10
     2 | a | 1 |   4
     1 | a | 3 |   3
    (4 rows)