MySQL从前一行添加值

时间:2012-10-17 04:23:38

标签: mysql running-total

我有一个单列的表。专栏是这样的:

1
2
3
4
5
...

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

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)

我如何构建一个查询来实现它?

基本上,我只想要differenceROW[X]之间的ROW[X-1]

2 个答案:

答案 0 :(得分:13)

SELECT  a.val, (@runtot :=  a.val  + @runtot) AS rt, ( @runtot := a.val ) ne
FROM    Table1 a,(SELECT @runtot:=0) c

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

SQLFiddle Demo

答案 1 :(得分:-1)

尝试

SELECT  a.int, (@runtot :=  a.int  + a.int - 1) AS rt
FROM    test a,(SELECT @runtot:=0) c

1 1 ( 0 + 1 )
2 3 ( 1 + 2 )
3 5 ( 2 + 3 )
4 7 ( 3 + 4 )
5 9 ( 4 + 5 )

这将导致您显示的输出