首页 > 解决方案 > postgresql表中的累积和

问题描述

我有一个有 3 列的表。姓名、标记和 School_day。我想拿30天的逐日累积分数。我在下面尝试过。

select sum(Mark), Name from Table1
where School_day between '2020-06-15'::date -29 and '2020-06-15'::date
group by Name

但我想在一个日期期间运行它,而不是每天运行它。

我在下面尝试过,但它没有给出正确的数字。

select sum(Mark), Name, School_day from Table1
where between School_day-29 and School_day
group by Name, School_day
order by School_day

标签: postgresqlcumulative-sum

解决方案


请试试这个,如果您对它的工作原理有疑问,请告诉我。

select Name, School_day, 
       sum(Mark) over (partition by Name 
                           order by School_day)
  from Table1
 where now() - School_day < interval '29 days'
 order by Name, School_day;

推荐阅读