这个问题在这里已经有了答案:
Create a Cumulative Sum Column in MySQL
(9 个回答)
6年前关闭。
首先对不起我的英语
我试图找到一个 requete 来计算不同行中的值的总和,如下所示:
row1 result
2 2
5 7
7 14
最佳答案
假设第一行定义了排序,您可以使用相关子查询轻松完成此操作:
select r.row1,
(select sum(t2.row1) from requete r2 where r2.row1 <= r.row1) as cumesum
from requete r;
对于较大的表,这可能效率低下,而变量会提高性能:
select r.row1,
(@sum := @sum + r.row1) as cumesum
from requete r cross join
(select @sum := 0) params
order by r.row1;
请注意,在这两种情况下,用于对行进行排序的列不需要是累积总和计算的同一列。
编辑:
在 MySQL 8+ 中,您当然应该使用:
select r.row1,
sum(row1) over (order by row1) as cumesum
from requete r;
关于mysql - 如何在mysql中对前一行进行求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31232959/