在MySQL中创建累积和列

var*_*unl 4 mysql sql

样本表ID :( num是一个键,因此不会有任何重复)

num
1
5
6
8
2
3
Run Code Online (Sandbox Code Playgroud)

期望的输出:(
应该排序并具有累积和列)

num cumulative
1    1
2    3
3    6
5    11
6    17
8    25
Run Code Online (Sandbox Code Playgroud)

这是我得到的一个解决方案:

select a.num, sum(b.num) from ID a, ID b where b.num <= a.num group by a.num order by a.num;
Run Code Online (Sandbox Code Playgroud)

The*_*ter 7

您可以使用临时变量来计算累积总和:

SELECT  a.num,
   (@s := @s + a.num) AS cumulative
FROM ID a, (SELECT @s := 0) dm
ORDER BY a.num;
Run Code Online (Sandbox Code Playgroud)