SQL HAVING Clause
زبان SQL وقتی بخوایم بعد از گروهبندی رکوردها رو فیلتر کنیم، از HAVING Clause استفاده میکنیم.
در واقع:
-
WHEREبرای فیلتر کردن رکوردها قبل از GROUP BY استفاده میشه. -
HAVINGبرای فیلتر کردن نتایج بعد از GROUP BY استفاده میشه.
🔹 ساختار کلی
🔹 مثال ساده
جدول: Orders
| order_id | customer_id | amount |
|---|---|---|
| 1 | 1 | 500 |
| 2 | 2 | 300 |
| 3 | 1 | 200 |
| 4 | 3 | 400 |
| 5 | 2 | 100 |
کوئری:
📌 خروجی:
| customer_id | total_amount |
|---|---|
| 1 | 700 |
توضیح: فقط مشتریهایی نشون داده میشن که جمع سفارشهاشون بیشتر از 400 باشه.
🔹 ترکیب WHERE و HAVING
📌 توضیح:
-
WHERE amount > 100→ فقط سفارشهایی که مبلغشون بالای 100 هست در نظر گرفته میشن. -
HAVING COUNT(order_id) >= 2→ فقط مشتریهایی که حداقل 2 سفارش معتبر دارن نشون داده میشن.
🔹 مثال با چند شرط
📌 فقط مشتریهایی که میانگین سفارشهاشون بین 200 تا 600 باشه نمایش داده میشن.
✅ نکات مهم
-
HAVINGهمیشه همراهGROUP BYاستفاده میشه (ولی میشه به تنهایی هم نوشت). -
برای فیلتر کردن توابع تجمیعی (
SUM,COUNT,AVG, …) باید ازHAVINGاستفاده کنید، نهWHERE. -
ترتیب اجرا:
WHERE→GROUP BY→HAVING→ORDER BY.
HTML
Tailwind Css
Bootstrap 5
Java script
++C
Python
Three.js
Gsap
Sass
SQL
React