Базовая структура выражения SQL с предложением HAVING следующая:
SELECT column1, column2, ...
FROM table
GROUP BY column1, column2, ...
HAVING condition;
В этой структуре:
SELECT
указывает столбцы, которые вы хотите получить из таблицы.FROM
указывает таблицу, к которой вы запрашиваете.GROUP BY
используется для группировки строк на основе одного или нескольких столбцов.HAVING
используется для фильтрации групп по условию.
Предложение HAVING аналогично предложению WHERE, но в то время как предложение WHERE фильтрует отдельные строки, предложение HAVING фильтрует группы. Он позволяет применять условия к группам, созданным с помощью предложения GROUP BY.
Вот несколько примеров выражений SQL с предложением HAVING:
Пример 1. Получение данных об отделах, в которых работает более 10 сотрудников:
SELECT department, COUNT(*) as employee_count
FROM employees
GROUP BY department
HAVING COUNT(*) > 10;
Пример 2. Получение данных о клиентах, разместивших заказы на общую сумму более 500 долларов США:
SELECT customer_id, SUM(order_total) as total_order_value
FROM orders
GROUP BY customer_id
HAVING SUM(order_total) > 500;
Пример 3. Получение товаров со средним рейтингом выше 4,5:
SELECT product_id, AVG(rating) as average_rating
FROM product_reviews
GROUP BY product_id
HAVING AVG(rating) > 4.5;