我需要计算不同行中日期之间的时间。 (PLSQL)

时间:2017-09-27 10:46:33

标签: sql database oracle plsql

我有一个表格,用于存储所有状态更改及其生成时间。因此,当我在时间表上搜索订单号时,我会得到更改的所有日期,但我真正想要的是订单在每种状态下的时间(小时/分钟)。

时间表似乎是这样

ID_ORDER |  Status   | Date
1         Waiting     27/09/2017 12:00:00
1         Late        27/09/2017 14:00:00
1         In progress 28/09/2017 08:00:00
1         Validating  30/09/2017 14:00:00
1         Completed   30/09/2017 14:00:00

谢谢!

1 个答案:

答案 0 :(得分:1)

使用lead()

select t.*, 
       (lead(date) over (partition by id_order order by date) - date) as time_in_order
from t;