Junior
SQL-ში WHERE და HAVING ბრძანებების შორის რა განსხვავებაა?
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 |
| توابع تجمعی | نمیتواند مستقیماً استفاده شود | میتواند استفاده شود |