Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用累积和对循环中的和进行计数_Mysql_Sql_Cumulative Sum - Fatal编程技术网

Mysql 使用累积和对循环中的和进行计数

Mysql 使用累积和对循环中的和进行计数,mysql,sql,cumulative-sum,Mysql,Sql,Cumulative Sum,我有一个foreach,可以打印数据库中的所有数据。数据如下所示: data_sum 63 78 25 35 data_sum 63 141 166 201 对于循环中的每一行,我要添加总和,如下所示: data_sum 63 78 25 35 data_sum 63 141 166 201 我已尝试使用此SQL查询: SET @csum := 63; SELECT id_account, data_sum, is_expense, (@csum := @csum + data_sum)

我有一个
foreach
,可以打印数据库中的所有数据。数据如下所示:

data_sum
63
78
25
35
data_sum
63
141
166
201
对于循环中的每一行,我要添加总和,如下所示:

data_sum
63
78
25
35
data_sum
63
141
166
201
我已尝试使用此SQL查询:

SET @csum := 63;
SELECT id_account, data_sum, is_expense, (@csum := @csum + data_sum) AS cumulative_sum FROM economy_events
WHERE id_account = '4'
AND is_expense = '1'
但我只是在尝试时得到了
SQLSTATE[HY000]:一般错误。这是我第一次尝试使用这种方法。我做错了什么

提前感谢。

当直接从您的问题粘贴时,您的查询在MySQL(至少5.1、5.5和5.6)中工作

看这把小提琴:

但是,您应该将@csum初始化为0,以便再现所需的输出。 此外,为了使累计总和有意义,您需要添加一个
orderby
子句添加到您的查询中

如果从某种编程语言运行查询,问题可能是连续行有问题,或者查询由两条语句组成

您可以尝试将查询重写为

SELECT id_account, data_sum, is_expense,
       (@csum := @csum + data_sum) AS cumulative_sum
FROM economy_events, (SELECT @csum := 0) AS csums
WHERE id_account = '4'
AND is_expense = '1'

你在用什么<代码>SQL Server
<代码>MySQL<代码>Oracle<代码>DB2?首先,你必须定义一些处理数据的顺序。JW:我使用的是MySQL。哈姆雷特:你的意思是使用简单的“按数据排序”\u sum DESC之类的东西?