Как получить общее количество заказов за каждый день по сумме исторического подсчета в SQL

Допустим, у меня уже есть количество заказов в день в таблице my_order:

2018-10-01 10
2018-10-02 15
2018-10-03 12
2018-10-04 18
2018-10-05 20

И я хочу получить ежедневный общий подсчет по сумме всех исторических подсчетов, вот так:

2018-10-01 10
2018-10-02 25
2018-10-03 37
2018-10-04 55
2018-10-05 75

Как это сделать в SQL?

dbms назовите пожалуйста?

Zaynul Abadin Tuhin 23.10.2018 19:22

В основном MySQL, но я также хочу использовать его во внутреннем SQL, таком как внутренний инструмент, а не в конкретной СУБД.

Levin 23.10.2018 19:35

Это важно, потому что OVER() не будет доступен до MySQL 8. Если кто-то предоставит вам решение с OVER(), и вы используете MySQL 5.7, решение будет бесполезным.

Eric 23.10.2018 19:48
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
3
128
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Большая часть СУБД поддерживает оконную функцию, поэтому вы можете:

select m.*, sum(cnt) over (order by date)
from my_order m;

Если СУБД не имеет функции окна, вы можете вместо этого использовать подзапрос:

select m.*, (select sum(m1.cnt) from my_order m1 where m1.date <= m.date)
from my_order m;

Спасибо, это именно то, что я хотел.

Levin 23.10.2018 19:33

@ Левин. . . Если это ответ на ваш вопрос, вы должны принять его.

Gordon Linoff 23.10.2018 20:14

Другие вопросы по теме