如何通过SQL中的历史总和获取每日的总订单数

时间:2018-10-23 17:20:27

标签: sql aggregate

假设我已经在表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中做到这一点?

1 个答案:

答案 0 :(得分:2)

大多数 DBMS 支持窗口功能,因此您可以:

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

如果DBMS没有窗口功能,则可以改用子查询:

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