43. Статистика по отделам #
Условие задачи:
📌 Есть таблицы Employees(EmployeeID, Name, DepartmentID, Salary) и Departments(DepartmentID, DepartmentName).
Необходимо для каждого отдела вывести:
- название отдела,
- количество сотрудников в отделе,
- среднюю зарплату (округлённую до 2 знаков),
- максимальную зарплату,
- минимальную зарплату.
Отсортировать результат по количеству сотрудников в отделе по убыванию.
Спойлеры к решению
Подсказки
💡 Используйте
💡 Агрегируйте по
💡 Для округления средней зарплаты примените функцию
💡 Сортируйте по нужной колонке через
LEFT JOIN, чтобы включить отделы без сотрудников (если нужно).💡 Агрегируйте по
d.DepartmentName с помощью COUNT(), AVG(), MAX(), MIN().💡 Для округления средней зарплаты примените функцию
ROUND(..., 2).💡 Сортируйте по нужной колонке через
ORDER BY employee_count DESC.Решение
SELECT
d.DepartmentName AS department_name,
COUNT(e.EmployeeID) AS employee_count,
ROUND(AVG(e.Salary), 2) AS average_salary,
MAX(e.Salary) AS max_salary,
MIN(e.Salary) AS min_salary
FROM Departments d
LEFT JOIN Employees e
ON e.DepartmentID = d.DepartmentID
GROUP BY
d.DepartmentName
ORDER BY
employee_count DESC;