Ответ
В SQL фильтрация агрегированных данных выполняется с помощью оператора HAVING. Ключевое отличие от WHERE в том, что WHERE фильтрует строки до агрегации, а HAVING — после.
Пример:
-- Найти отделы, где средняя зарплата превышает 50000
SELECT department_id, AVG(salary) as avg_salary
FROM employees
GROUP BY department_id
HAVING AVG(salary) > 50000;
Порядок выполнения:
FROM/JOIN— выбор таблиц.WHERE— фильтрация строк (если нужно).GROUP BY— группировка.- Агрегатные функции (
SUM,AVG,COUNT) — вычисление по группам. HAVING— фильтрация по результату агрегации.SELECT— выбор полей.ORDER BY/LIMIT— сортировка и ограничение.
Важно: В условии HAVING можно использовать как агрегатные функции (SUM(amount) > 100), так и обычные поля из GROUP BY (department_id = 5).