如何在mysql中的前一行中加上前一行的总和

时间:2015-07-05 17:16:53

标签: mysql

首先抱歉我的英文

我试图找到一个requete来计算不同行中值的总和:

[1-9]

1 个答案:

答案 0 :(得分:7)

假设第一行定义了排序,您可以使用相关子查询轻松完成此操作:

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;

请注意,在这两种情况下,用于排序行的列不需要与累积和计算的列相同。