Postgresql Postgres查询,用于将一行中的值减去下一行中的值

Postgresql Postgres查询,用于将一行中的值减去下一行中的值,postgresql,view,subtraction,Postgresql,View,Subtraction,我有一张像(mytable)这样的桌子: 我需要一个查询,以便在每行上按下一行进行减法: id | value | diff ================= 1 | 4 | 4 (4-Null) 2 | 5 | 1 (5-4) 3 | 8 | 3 (8-5) 4 | 16 | 8 (16-8) 5 | 8 | -8 (8-16) ... 现在我使用python脚本来实现这一点,但我想如果我从这个表中创建一个视图会更快。在这种情况下,您应该使用-LAG(): 选择id,value,valu

我有一张像(mytable)这样的桌子:

我需要一个查询,以便在每行上按下一行进行减法:

id | value | diff
=================
1 | 4 | 4 (4-Null)
2 | 5 | 1 (5-4)
3 | 8 | 3 (8-5)
4 | 16 | 8 (16-8)
5 | 8  | -8 (8-16)
...
现在我使用python脚本来实现这一点,但我想如果我从这个表中创建一个视图会更快。

在这种情况下,您应该使用-
LAG()

选择id,value,value-LAG(value,1)OVER(按id排序)作为差异
从mytable
按id订购;
id | value | diff
=================
1 | 4 | 4 (4-Null)
2 | 5 | 1 (5-4)
3 | 8 | 3 (8-5)
4 | 16 | 8 (16-8)
5 | 8  | -8 (8-16)
...