Sobes.tech
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
توابع تجمعی نمی‌تواند مستقیماً استفاده شود می‌تواند استفاده شود