MySQL从前一行添加值

nic*_*ick 4 mysql running-total

我有一个单列的表.列是这样的:

1
2
3
4
5
...
Run Code Online (Sandbox Code Playgroud)

我想创建一个查询,显示另一个列,该列将添加以前的值.所以:

1 1 ( 0 + 1 )
2 3 ( 1 + 2 )
3 5 ( 2 + 3 )
4 7 ( 3 + 4 )
5 9 ( 4 + 5 )
9 14 (5 + 9)
45 54 ( 9 + 45)
Run Code Online (Sandbox Code Playgroud)

我将如何构建一个查询来实现这一目标?

从本质上讲,我只想difference之间ROW[X],和ROW[X-1].

jai*_*ter 14

SELECT  a.val, (@runtot :=  a.val  + @runtot) AS rt, ( @runtot := a.val ) ne
FROM    Table1 a,(SELECT @runtot:=0) c
Run Code Online (Sandbox Code Playgroud)

这似乎有效.我尝试在每个阶段重新启动变量.试试看.

SQLFiddle演示

  • 我刚才想出了那个.我唯一能做的就是只返回`rt`,而不是`ne` ..这是一个子查询 (2认同)
  • 是的,是的。谢谢:)我很高兴得到我的第一个声誉的答案的支持:) (2认同)