## Контекст (таблицы и пример данных) ### Таблицы - `employees(id, name, team_id)` - `vacations(emp

SQL Developer Senior
## Контекст (таблицы и пример данных) ### Таблицы - `employees(id, name, team_id)` - `vacations(employee_id, start_date, end_date)` ### Пример данных **employees** | id | name | team_id | |---:|------|--------:| | 1 | A | 10 | | 2 | B | 10 | **vacations** | employee_id | start_date | end_date | |-----------:|------------|------------| | 1 | 2025-07-01 | 2025-07-10 | | 2 | 2025-07-05 | 2025-07-08 | --- ## Задача Найти пары сотрудников **в одной команде**, у которых отпуска пересекаются по датам. Вернуть: `team_id`, `emp1`, `emp2`, `overlap_start`, `overlap_end`.
Ответы
```sql SELECT e1.team_id, e1.id AS emp1, e2.id AS emp2, GREATEST(v1.start_date, v2.start_date) AS overlap_start, LEAST(v1.end_date, v2.end_date) AS overlap_end FROM employees e1 JOIN vacations v1 ON v1.employee_id = e1.id JOIN employees e2 ON e2.team_id = e1.team_id AND e2.id > e1.id JOIN vacations v2 ON v2.employee_id = e2.id WHERE v1.start_date <= v2.end_date AND v2.start_date <= v1.end_date; ```