繁体   English   中英

MySQL从前一行添加值

[英]MySQL adding value from previous row

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

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)

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

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

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

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

SQLFiddle演示

尝试

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 )

这将导致您显示的输出

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM