Накопительная сумма в таблице в postgresql - PullRequest
0 голосов
/ 09 июля 2020

У меня есть таблица с 3 столбцами. Имя, Марка и Школьный_день. Я хочу получать ежедневные накопительные оценки за 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

1 Ответ

1 голос
/ 09 июля 2020

Пожалуйста, попробуйте это и дайте мне знать, если у вас возникнут вопросы о том, как это работает.

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...