我有一个单列的表。专栏是这样的:
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)
我将如何构建一个查询来实现这一点?
本质上,我只想要difference
介于ROW[X]
和之间ROW[X-1]
。
我有一个单列的表。专栏是这样的:
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)
我将如何构建一个查询来实现这一点?
本质上,我只想要difference
介于ROW[X]
和之间ROW[X-1]
。
SELECT a.val, (@runtot := a.val + @runtot) AS rt, ( @runtot := a.val ) ne
FROM Table1 a,(SELECT @runtot:=0) c
这似乎奏效了。我尝试在每个阶段重新初始化变量。试试看。
尝试
SELECT a.int, (@runtot := a.int + a.int - 1) AS rt
FROM test a,(SELECT @runtot:=0) c
IE
1 1 ( 0 + 1 )
2 3 ( 1 + 2 )
3 5 ( 2 + 3 )
4 7 ( 3 + 4 )
5 9 ( 4 + 5 )
这将导致您显示的输出