在SQL中从另一行减去一行数据
我已经迷上了一些SQL,其中有几行数据,我想从上一行中减去一行,并使其一直向下重复。
所以这是表格:
CREATE TABLE foo( ID,
长度
)
插入foo(id,length)VALUES(1,1090)
插入foo(id,length)VALUES(2,888)
插入foo(id,length)值(3,545)
插入foo(id,length)VALUES(4,434)
插入foo(id,length)VALUES(5,45)
我希望结果显示第三列,称为差异,即从下面的一列减去第一行,最后一行从零减去。
+ ------ + ------------------------ +| id |长度| 差异|
+ ------ + ------------------------ +
| 1 | 1090 | 202 |
| 2 | 888 | 343 |
| 3 | 545 | 111 |
| 4 | 434 | 389 |
| 5 | 45 | 45 |
我已经尝试过自我连接,但是我不确定如何限制结果,而不是让结果不断循环。我不能确定id值对于给定的结果集是连续的,所以我不使用该值。我可以扩展架构以包括某种顺序值。
这是我尝试过的:
SELECT id,f.length,f2.length,(f.length-f2.length)AS差异从foo f,foo f2
谢谢您的协助。
回答:
这可能会对您有所帮助。
select a.id, a.length, coalesce(a.length -
(select b.length from foo b where b.id = a.id + 1), a.length) as diff
from foo a
以上是 在SQL中从另一行减去一行数据 的全部内容, 来源链接: utcz.com/qa/431247.html