表t1:
date profit
2011-01-01 100
2011-01-02 -50
2011-01-03 25
我希望获得如下输出:
date aggregated profit
2011-01-01 100
2011-01-02 50
2011-01-03 75
有关高效MySQL查询的任何建议吗?
答案 0 :(得分:0)
您正在寻找累计金额。最有效的方法是使用变量:
select t.*, (@sum := @sum + profit) as cumulative_profit
from (select t.*
from t
order by date
) t cross join
(select @sum := 0) params;
请注意,在早期版本的MySQL中,子查询不是必需的。大约5.7左右,变量需要子查询来遵守排序。