在每一行后显示总和
Display sum after each row
我正在使用 MySQL 并且需要为每一行显示所有先前值的总和,包括当前行。
date | val | total
------------------
15M | 20 | 20
17M | 15 | 35
1APR | -5 | 30
-------------------
所以,在数据库中我只有每个日期的 date
和 val
。我目前使用 SELECT date, val FROM table ORDER BY DATE ASC
。我怎样才能添加 total
列?我想我会使用 SUM
查询,但如何为每一行添加总和?
如果你可以使用变量,你可以很容易地计算出累计和
这样
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;
我正在使用 MySQL 并且需要为每一行显示所有先前值的总和,包括当前行。
date | val | total
------------------
15M | 20 | 20
17M | 15 | 35
1APR | -5 | 30
-------------------
所以,在数据库中我只有每个日期的 date
和 val
。我目前使用 SELECT date, val FROM table ORDER BY DATE ASC
。我怎样才能添加 total
列?我想我会使用 SUM
查询,但如何为每一行添加总和?
如果你可以使用变量,你可以很容易地计算出累计和 这样
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;