HAVING в Oracle SQL. Введение
HAVING используется когда вы группируете данные с помощью GROUP BY и нужно отфильтровать полученные группы — например, выбрать только те, где сумма больше определённого значения.
HAVING работает после группировки, в отличие от WHERE, который фильтрует строки до неё. Это делает HAVING незаменимым при работе с агрегатами (SUM(), AVG(), COUNT() и т.д.).
🔤 Написание
🔄 Где используется HAVING
Фильтрация агрегированных данных
Условие на группы: например, только департаменты с более чем 5 сотрудниками
Совместно с
GROUP BY,ORDER BYРабота в отчётных и аналитических запросах
🧪 10 Примеров использования H A V I N G
1️⃣ Группы с количеством > 10
2️⃣ Средняя зарплата по должности > 5000
3️⃣ Использование нескольких условий в H A V I N G
4️⃣ HAVING с псевдонимом агрегата (не всегда работает — лучше повторить выражение)
5️⃣ Группировка по дате и фильтрация по количеству заказов
6️⃣ ХЭВИНГ в подзапросе
7️⃣ HAVING без GROUP BY — на всю таблицу
8️⃣ Сравнение с WHERE (до группировки)
9️⃣ Фильтрация по агрегату MAX()
🔟 ХЭВИНГ с выражением CASE
🧩 Заключение
HAVING — это мощный фильтр на уровне групп, который позволяет гибко контролировать результат после агрегации. Он дополняет GROUP BY, делая SQL-запросы аналитически сильными.
💡 Запомни:
HAVINGработает послеGROUP BYИспользуется с агрегатными функциями
Не путай с
WHERE(он фильтрует строки, аHAVING— группы)Можно комбинировать с подзапросами, CASE, логическими выражениями
🔜 Следующая статья:
GROUP в Oracle SQL — как управлять агрегацией и группировкой данных