如何在sql中找到“脏”状态床与“已完成”状态床之间的时间差。
ID Cleaning Stage Event Time
====== ============== ==============
790248 Dirty 1/2/2019 5:36 PM
790248 Assigned 1/2/2019 5:58 PM
790248 On Hold 1/2/2019 5:58 PM
790248 Assigned 1/2/2019 6:21 PM
790248 In Progress 1/2/2019 6:52 PM
790248 Completed 1/2/2019 7:59 PM
所有的床都是这样的。所以我想计算每一张床的清洁时间,减去上面脏的和完成的时间,我只有一张床作为例子。谢谢
发布于 2019-08-08 12:57:41
可以使用条件聚合获得这两种状态:
select id, min(case when stage = 'Dirty' then time end) as dirty_time,
max(case when stage = 'Completed' then time end) as completed_time
from t
group by id;
然后,您可以使用timestampdiff()
减去这些,并获得您想要的单位的时间。
https://stackoverflow.com/questions/57418915
复制相似问题