在SQL中减去上一行减去当前行

Gay*_*hri 2 sql oracle plsql oracle-apex

我有一张桌子orders.

如何减去列的上一行减去当前行 Incoming

在此输入图像描述

有人可以帮忙吗

wir*_*ext 10

在我的SQL中

 select a.Incoming, 
coalesce(a.Incoming - 
    (select b.Incoming from orders b where b.id = a.id + 1), a.Incoming) as differance
from orders a
Run Code Online (Sandbox Code Playgroud)


Gun*_*lan 6

LAG在Oracle中使用函数.

试试这个查询

SELECT DATE_IN,Incoming,
   LAG(Incoming, 1, 0) OVER (ORDER BY Incoming) AS inc_previous,
   LAG(Incoming, 1, 0) OVER (ORDER BY Incoming) - Incoming AS Diff
FROM orders
Run Code Online (Sandbox Code Playgroud)

SQL小提琴链接