Как вывести 0 вместо NULL для отделов без сотрудников?

Используйте COALESCE для агрегата: COALESCE(MAX(e.salary), 0). Пустые отделы сохраняются благодаря LEFT JOIN от departments.

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

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

Используйте COALESCE для агрегата: COALESCE(MAX(e.salary), 0). Пустые отделы сохраняются благодаря LEFT JOIN от departments.

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

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

Используйте COALESCE для агрегата: COALESCE(MAX(e.salary), 0). Пустые отделы сохраняются благодаря LEFT JOIN от departments.

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

Названия таблиц и полей условны. Ноль здесь — выбранное представление отсутствующего максимума, а не доказательство зарплаты 0. Если считаете сотрудников, используйте COUNT(e.id), а не COUNT(*): LEFT JOIN создаёт строку отдела даже без совпавшего сотрудника. Фильтры по сотрудникам не должны случайно превращать соединение во внутреннее.

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

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

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

Подробнее