Что такое 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`, он применяется ко всему набору строк как одна группа.