Sobes.tech
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
Агрэгатныя функцыі Не можа выкарыстоўвацца непасрэдна Можа выкарыстоўвацца