Коррелированный подзапрос вычисляет среднюю зарплату сотрудников того же отдела, а внешний WHERE оставляет зарплаты выше неё. Схема таблицы в условии не задана, поэтому имена нужно согласовать.
-- Выведем список сотрудников, у которых зарплата выше, чем средняя в отделе,
Коррелированный подзапрос вычисляет среднюю зарплату сотрудников того же отдела, а внешний WHERE оставляет зарплаты выше неё. Схема таблицы в условии не задана, поэтому имена нужно согласовать.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
-- Выведем список сотрудников, у которых зарплата выше, чем средняя в отделе, -- в котором работает данный сотрудник, через коррелированный подзапрос
Ответ
Коррелированный подзапрос вычисляет среднюю зарплату сотрудников того же отдела, а внешний WHERE оставляет зарплаты выше неё. Схема таблицы в условии не задана, поэтому имена нужно согласовать.
Для таблицы employees(id, name, department_id, salary):
SELECT e.id, e.name, e.salary, e.department_id
FROM employees e
WHERE e.salary > (
SELECT AVG(other.salary)
FROM employees other
WHERE other.department_id = e.department_id
);
AVG игнорирует NULL-зарплаты; сотрудник с NULL-зарплатой не пройдёт сравнение. NULL department_id здесь не образует общий отдел через равенство — если такая группа нужна, её обработку определяют отдельно.