departments — отделы, employees — сотрудники с отделом dept_id и непосредственным руководителем manager_id. У генерального директора руководителя нет, manager_id IS NULL. Руководитель может сидеть в другом отделе.
Возьмите отделы, где работает не больше 3 человек, в том числе отделы без сотрудников. Для каждого сотрудника такого отдела верните dept_name, employee — его имя и manager — имя руководителя.
Пустой отдел даёт одну строку с NULL в employee и manager. Порядок — по dept_id, внутри отдела по emp_id.
В работе: Проверка оргструктуры перед реорганизацией: какие отделы слишком малы и кому они подчиняются.
Таблицы
departments — отдел
| Колонка | Тип | Что значит |
|---|---|---|
dept_id | int | ключ |
name | text | название |
employees — сотрудник
| Колонка | Тип | Что значит |
|---|---|---|
emp_id | int | ключ |
full_name | text | имя |
dept_id | int | отдел |
manager_id | int | руководитель или NULL |
Пример: данные
departments · 3 строки
| dept_id | name |
|---|---|
| 1 | Склад Хоругвино |
| 2 | Аналитика |
| 3 | Юристы |
employees · 6 строк
| emp_id | full_name | dept_id | manager_id |
|---|---|---|---|
| 1 | Королёва Дарья | 2 | NULL |
| 2 | Петров Илья | 2 | 1 |
| 3 | Сафина Лилия | 2 | 1 |
| 4 | Зуев Марк | 2 | 1 |
| 5 | Орлов Семён | 1 | 1 |
| 6 | Ким Вера | 1 | 5 |
Ожидаемый ответ
| dept_name | employee | manager |
|---|---|---|
| Склад Хоругвино | Орлов Семён | Королёва Дарья |
| Склад Хоругвино | Ким Вера | Орлов Семён |
| Юристы | NULL | NULL |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
dept_name, employee, manager
Источник: тестовое аналитика данных (Middle) в Ozon, сборник No Data No Growth. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.