Ответ
Для фильтрации по агрегированным значениям, таким как средняя зарплата, необходимо использовать оператор HAVING в сочетании с GROUP BY. Оператор WHERE не работает с результатами агрегатных функций.
Пример запроса:
SELECT DepartmentID, AVG(Salary) AS AverageSalary
FROM Employees
GROUP BY DepartmentID
HAVING AVG(Salary) > 50000;
Объяснение:
GROUP BY DepartmentIDгруппирует сотрудников по отделам.AVG(Salary)вычисляет среднюю зарплату для каждой группы.HAVING AVG(Salary) > 50000фильтрует результаты группировки, оставляя только те отделы, где средняя зарплата превышает 50000.
Ключевое отличие HAVING от WHERE:
WHEREфильтрует строки перед группировкой.HAVINGфильтрует группы после группировки и агрегации.