Middle
Таврии SQL WHERE ва HAVING дар чист?
sobes.tech AI
Ҷавоб аз AI
WHERE фильтрує рядки перед групуванням (GROUP BY), а HAVING — групи після групування. WHERE може використовувати стовпці, які не входять до SELECT, HAVING зазвичай використовує агрегатні функції або стовпці, присутні в GROUP BY.
Приклад:
SELECT
category,
COUNT(*) as total_items
FROM
products
WHERE
price > 10 // Фільтруємо товари перед групуванням за категорією
GROUP BY
category
HAVING
COUNT(*) > 5; // Фільтруємо категорії з більш ніж 5 товарами
Порівняння:
| Оператор | Мета | Застосовується до | Може використовувати агрегатні функції | Порядок щодо GROUP BY |
|---|---|---|---|---|
WHERE |
Фільтрація рядків | Окремі рядки | Ні | Перед |
HAVING |
Фільтрація груп | Групи рядків | Так | Після |