Оператор HAVING в SQL

  |
 7474

Оператор HAVING в SQL використовується, коли потрібно відфільтрувати дані від використання агрегатних функцій, таких як MIN() і MAX(), SUM() і AVG() та COUNT().

Тут ми рахуємо кількість клієнтів (customer_id), групуючи їх за країнами (country), а потім повертаємо результат, якщо на країну є більше 1 клієнта.

Примітка: Оператор HAVING додали через те, що оператор WHERE не підтримує агрегатні функції. Крім того, перед оператором HAVING необхідно використовувати GROUP BY.

HAVING проти WHERE в SQL

Оператор HAVING Оператор WHERE
Перевіряє умову для групи рядків. Перевіряє умову для кожного рядка окремо.
Використовується з агрегатними функціями. Не можна використовувати з агрегатними функціями.
Виконується після оператора GROUP BY. Виконується перед оператором GROUP BY.

Давайте розглянемо приклад. Якщо ми хочемо вибрати всі замовлення, сума (amount) яких менше 500, ми можемо зробити:

Тепер, якщо нам потрібно порахувати суму всіх замовлень кожного клієнта (customer_id):

Ми отримуємо згруповані дані.

Готово! Але якщо нам потрібно вибрати рядки, в яких сума замовлень менше 500 на кожного клієнта, ми можемо використати оператор HAVING наступним чином:

Результат:

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (15 оцінок, середня: 5,00 з 5)
Завантаження...

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *