Junior
Фарқи байни фармонҳои WHERE ва HAVING дар SQL чист?
sobes.tech AI
Ҷавоб аз AI
WHERE применяется до группировки и фильтрует строки результата FROM. HAVING применяется после группировки и фильтрует группы, сформированные с помощью GROUP BY.
Прыклад:
Падумайце, што ў нас ёсць табліца orders з калонамі customer_id, order_date і amount.
Знайдзіце ўсіх пакупцоў, у якіх агульная сума заказаў перавышае 1000:
SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000;
Знайдзіце ўсе заказы з сумай больш за 1000:
SELECT customer_id, order_date, amount
FROM orders
WHERE amount > 1000;
Табліца параўнання:
| Асаблівасць | WHERE | HAVING |
|---|---|---|
| Заяўка | На асобных радках перад групоўкай | На групах радкоў пасля групоўкі |
| Выкарыстоўвае | Калонкі з FROM |
Агрэгатныя функцыі і калонкі з GROUP BY |
| Выконваецца | Перад GROUP BY |
Пасля GROUP BY |
| Агрэгатныя функцыі | Не можа выкарыстоўвацца непасрэдна | Можа выкарыстоўвацца |