mysql - 在每一行后显示总和

标签 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 查询,但如何为每一行添加总和?

最佳答案

如果你可以使用变量,你可以很容易地计算累计和 这样

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 - 在每一行后显示总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28394267/

相关文章:

java - 如何在 hibernate 中使用一对一映射执行插入

php - mysql-cluster页面无法启动

mysql - 使用awk将csv文件解析为数组

mysql - 未编译 DataColumn 中的乘积表达式,显示错误为 "Cannot find column [max]."

mysql - 如何获取不在下一个表mysql中的数据

mysql - 显示 2 没有连接的总和

php - 什么会导致 PHP 插入 MYSQL 数据库错误地将另一个用户的数据插入到一行中?

database - Zend Db 连接和配置

sql - 将列类型从整数更改为字符串

php - PDO 转义和查询中