我有一张如下表:
app_no | curr_time updt_time status
212461248 | 2016-04-30 20:26:54 |2016-05-04 08:36:17 | Incomplete
212461248 | 2016-04-30 20:26:54 |2016-11-18 11:17:28 | Error
212461248 | 2016-04-30 20:26:54 |2017-01-27 02:00:40 | Refer
212461248 | 2016-04-30 20:26:54 |2017-08-12 23:59:02 | Declined
212461251 | 2017-06-15 01:41:13 |2017-06-22 04:02:11 | Error
212461251 | 2017-06-15 01:41:13 |2017-10-18 01:34:09 | Declined
212461253 | 2016-06-21 00:56:23 |2016-06-24 11:44:17 | Incomplete
212461253 | 2016-06-21 00:56:23 |2017-09-04 18:20:06 | Error
我想让每个应用程序从一个状态转移到另一个状态(从updt_time列)?
例如:212461248的时间从不完整转为错误,错误引用并参考拒绝。
输出应该像
status time_taken
------ -----------
error hh
refer hh
declined hh
有什么想法吗?
答案 0 :(得分:1)
我认为你可以使用窗口函数:
我们试试这个
SELECT app_no, status, extract(epoch FROM (updt_time - lag(updt_time) OVER (PARTITION BY app_no ORDER BY updt_time))::interval) as time_taken
FROM your_table
有关窗口功能的更多信息,请访问here。