Понимание базовой структуры выражений SQL с предложением HAVING

Базовая структура выражения 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;