我有两个日期check_in
和的记录check_out
,我想知道同时签到多个人的范围。
因此,如果我有以下签入/签出:
人A: 1PM - 6PM
人B: 3PM - 10PM
人物C: 9PM - 11PM
我想得到3PM - 6PM
(人A和B的9PM - 10PM
重叠)和(人B和C的重叠)。
我可以编写一个算法来使用代码在线性时间内做到这一点,是否也可以通过线性时间通过关系查询来做到这一点PostgreSQL
?
它需要具有最小的响应,这意味着没有重叠的范围。因此,如果有这给了范围的结果6PM - 9PM
和8PM - 10PM
它是不正确的。它应该返回6PM - 10pm
。