每行后显示总和

时间:2015-02-08 13:09:42

标签: mysql sql pdo

我正在使用MySQL,需要显示每行的所有先前值的总和,包括当前行。

date | val | total  
------------------  
15M  | 20  |  20
17M  | 15  |  35
1APR | -5  |  30
-------------------

因此,在数据库中,我每个日期只有dateval。我目前使用SELECT date, val FROM table ORDER BY DATE ASC。如何添加total列?我想我会使用SUM查询,但如何为每一行添加总和?

1 个答案:

答案 0 :(得分:3)

如果您可以使用变量,则可以轻松计算累积总和  这样

set @csum := 0;
select date, val, (@csum := @csum + val) as cumulative_sum
from table
order by date DESC;

编辑有一种方法可以在连接中定义变量

select t.date, t.val, (@csum := @csum + t.val) as cumulative_sum
from table t
join (select @csum := 0) r
order by date DESC;