Task Livecoding SQL Min Max Salary by Unit

15. Минимальная и максимальная зарплата по отделам без уволенных #

Условие задачи:
📊 Написать SQL-запрос, который вернет минимальную и максимальную зарплату по каждому отделу среди не уволенных сотрудников.

📌 Структура таблиц:

  • units (id, name) – содержит подразделения компании
  • employees (id, unit_id, salary, fired) – содержит сотрудников и их зарплаты

🚀 Требуется вернуть:

  • unit_id
  • min_salary (минимальная зарплата среди не уволенных)
  • max_salary (максимальная зарплата среди не уволенных)
Спойлеры к решению
Подсказки
💡 Фильтруем только не уволенных сотрудников (fired = FALSE).
💡 Группируем данные по unit_id.
💡 Используем агрегатные функции MIN() и MAX().
Решение
SELECT 
    unit_id, 
    MIN(salary) AS min_salary, 
    MAX(salary) AS max_salary
FROM employees
WHERE fired = FALSE
GROUP BY unit_id;

Объяснение решения:

  • WHERE fired = FALSE – выбираем только работающих сотрудников.
  • GROUP BY unit_id – группируем данные по подразделению.
  • MIN(salary), MAX(salary) – вычисляем минимальную и максимальную зарплату в группе.

🔥 Теперь запрос вернет минимальную и максимальную зарплату по каждому подразделению среди работающих сотрудников! 🚀