Все задачи

Пересекающиеся бронирования

Продвинутый

Задача уровня Booking/Airbnb. **Условие:** Найдите все пары бронирований одного номера, которые пересекаются по датам (конфликты). **Таблица:** reservations (reservation_id, room_id, check_in_date, check_out_date, status, ...) **Требования:** 1. Учитывать только активные бронирования (status IN ('confirmed', 'checked_in')) 2. Бронирования пересекаются если: A.start < B.end AND A.end > B.start 3. Вывести room_id, reservation1_id, reservation2_id, overlap_start, overlap_end, overlap_days **Подсказка:** Self-join с условием пересечения интервалов.

Категория
Complex Joins
Время
~25 мин
Базы данных
PostgreSQLGreenplum
Теги
InterviewOverlapDate RangeBookingSelf-Joinподзапросы

Войдите, чтобы решить

Начать решение