В таблице employees(id, name, manager_id) нужно вывести всех сотрудников + имя их менеджера (или "—" если менеджера нет). manager_id ссылается на id другого сотрудника. Как решать?
SQLhardsenior
Варианты ответа
Self-join: SELECT e.name, COALESCE(m.name, '—') FROM employees e LEFT JOIN employees m ON m.id = e.manager_id
Через оконку: SELECT name, LAG(name) OVER (ORDER BY manager_id) FROM employees
Через GROUP BY с JOIN на ту же таблицу по имени
Рекурсивный CTE — только через него работает иерархия
Разбор ответа
Подробный разбор с объяснением «почему правильный ответ верный» и почему остальные неверны — после регистрации.
2475 вопросов с разбором, quiz-режим с проверкой, AI-собес и подготовка к интервью аналитика.