Как вывести все отделы включая Бухгалтерию? Что будет в max_salary для Бухгалтерии?

Для всех отделов нужен LEFT JOIN от таблицы отделов. Если в Бухгалтерии нет сотрудников с ненулевой зарплатой, MAX(salary) даст NULL, а не ноль.

Короткий ответ

Что ответить на собеседовании

Для всех отделов нужен LEFT JOIN от таблицы отделов. Если в Бухгалтерии нет сотрудников с ненулевой зарплатой, MAX(salary) даст NULL, а не ноль.

Подробный разбор

Ответ с пояснениями

Для всех отделов нужен LEFT JOIN от таблицы отделов. Если в Бухгалтерии нет сотрудников с ненулевой зарплатой, MAX(salary) даст NULL, а не ноль.

При условной схеме departments/employees:

SELECT d.id, d.name, MAX(e.salary) AS max_salary
FROM departments d
LEFT JOIN employees e ON e.department_id = d.id
GROUP BY d.id, d.name;

Фильтры по сотрудникам, которые не должны исключать пустые отделы, размещайте в ON, а не безусловно в WHERE. COALESCE может заменить NULL на 0 только по договорённости представления: отсутствие данных не равнозначно нулевой зарплате. Исходная схема и строки не приведены, поэтому результат для конкретной Бухгалтерии зависит от её сотрудников.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее