Что такое HAVING в SQL

Python Senior Okko
Что такое HAVING в SQL
Ответы
`HAVING` — это условие фильтрации для агрегированных данных, аналогичное `WHERE`, но применяемое после группировки (`GROUP BY`). В отличие от `WHERE`, которое фильтрует строки до агрегирования, `HAVING` работает с результатами агрегатных функций (`SUM`, `AVG`, `COUNT` и т.д.). **Пример:** ``` SELECT department, AVG(salary) as avg_salary FROM employees GROUP BY department HAVING AVG(salary) > 50000; ``` Здесь `HAVING` отфильтровывает отделы, где средняя зарплата меньше 50 000. **Ключевые отличия:** - `WHERE` фильтрует до группировки, `HAVING` — после. - `HAVING` может использовать агрегатные функции, `WHERE` — нет. - `HAVING` всегда идет после `GROUP BY`. **Важно:** Если `HAVING` используется без `GROUP BY`, он применяется ко всему набору строк как одна группа.