Оператор HAVING используется для фильтрации групп, созданных с помощью оператора GROUP BY. В отличие от оператора WHERE, который фильтрует строки до группировки, HAVING фильтрует группы после их создания. Обычно HAVING применяется для фильтрации по агрегатным функциям.
Синтаксис:
sql
Пример:
Предположим, есть таблица orders с полями customer_id, order_date, amount. Нужно найти клиентов, у которых общая сумма заказов за все время превышает 1000.
sql
В этом примере:
GROUP BY customer_id группирует заказы по каждому клиенту.SUM(amount) вычисляет общую сумму заказов для каждой группы (каждого клиента).HAVING SUM(amount) > 1000 фильтрует группы, оставляя только тех клиентов, у которых общая сумма заказов больше 1000.HAVING необходим, потому что оператор WHERE не может напрямую фильтровать результаты агрегатных функций.