我有一个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
答案 0 :(得分:1)
请尝试一下,如果您对它的工作方式有疑问,请告诉我。
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;