MySQL实现阶段累加的sql写法
2019-01-15 本文已影响1人
JouyPub
最近有一个需求:统计每日充值/消费之后的余额,对于这种需求,其实也很简单,只需要在每次充值/消费后,计算下余额,然后保存下来就可以了。但是对于这种需求,一条sql就能搞定,都不需要做冗余字段
图表展示这个场景可能更直白
![](https://img.haomeiwen.com/i13280750/52c62b84af676dd2.jpg)
需要的结果
![](https://img.haomeiwen.com/i13280750/e450ba42e76e4eaf.jpg)
写法一:
select t.*
,(select sum(price) from t_charge temp where temp.date <= t.date) as total_price
from t_charge t
group by t.id;
写法二:
select t.*, sum(temp.price) as total_price
from t_charge t,t_charge temp
where t.date <= temp.date
group by t.id;
![](https://img.haomeiwen.com/i13280750/206341f01732ec77.jpg)
博客地址:http://www.jouypub.com
简书主页:https://www.jianshu.com/u/756c9c8ae984
segmentfault主页:https://segmentfault.com/blog/jouypub
腾讯云主页:https://cloud.tencent.com/developer/column/72548