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