В employees — сотрудники территориального банка: председатель, управляющие отделениями, менеджеры, стажёры. У каждого, кроме верхних руководителей, есть manager_id. Верхних руководителей может быть несколько.
Для каждого сотрудника посчитайте team_size — число всех подчинённых: прямых, их подчинённых и так далее до самого низа. У рядового сотрудника 0.
Верните emp_id, full_name, team_size. Порядок — по team_size по убыванию, затем по emp_id.
В работе: Оргструктура в HR-аналитике: нагрузка на руководителей и расчёт премиального фонда по подразделению.
Таблицы
employees — сотрудники, связь «руководитель — подчинённый», циклов нет
| Колонка | Тип | Что значит |
|---|---|---|
emp_id | int | ключ |
full_name | text | ФИО |
position | text | должность |
manager_id | int | руководитель, NULL у верхних |
Пример: данные
employees · 6 строк
| emp_id | full_name | position | manager_id |
|---|---|---|---|
| 1 | Наталья Громова | председатель | NULL |
| 2 | Сергей Ушаков | управляющий отделением | 1 |
| 3 | Ирина Белова | управляющий отделением | 1 |
| 4 | Павел Дьяков | менеджер | 2 |
| 5 | Ольга Сорокина | менеджер | 2 |
| 6 | Денис Ахмедов | стажёр | 4 |
Ожидаемый ответ
| emp_id | full_name | team_size |
|---|---|---|
| 1 | Наталья Громова | 5 |
| 2 | Сергей Ушаков | 3 |
| 4 | Павел Дьяков | 1 |
| 3 | Ирина Белова | 0 |
| 5 | Ольга Сорокина | 0 |
| 6 | Денис Ахмедов | 0 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
emp_id, full_name, team_size
Источник: на данных Сбера, по мотивам открытой подборки вопросов. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.