У меня есть записи с двумя датами check_in
и check_out
, я хочу знать диапазоны, когда несколько человек зарегистрировались одновременно.
Итак, если у меня есть следующие проверки/выписки:
- Человек А:
1PM - 6PM
- Человек Б:
3PM - 10PM
- Человек С:
9PM - 11PM
Я хотел бы получить 3PM - 6PM
(совпадение лиц A и B) и 9PM - 10PM
(совпадение лиц B и C).
Я могу написать алгоритм, чтобы сделать это за линейное время с помощью кода, возможно ли сделать это с помощью реляционного запроса за линейное время с помощью PostgreSQL
?
Он должен иметь минимальный отклик, что означает отсутствие перекрывающихся диапазонов. Поэтому, если бы был результат, который давал диапазон 6PM - 9PM
и 8PM - 10PM
, это было бы неправильно. Вместо этого он должен возвращать 6PM - 10pm
.