SQL GROUP BY Statement
زبان SQL وقتی بخوایم دادهها رو براساس یک یا چند ستون گروهبندی کنیم و روی هر گروه عملیات تجمیعی (مثل COUNT, SUM, AVG, MAX, MIN) انجام بدیم، از GROUP BY استفاده میکنیم.
🔹 ساختار کلی
-
GROUP BY
رکوردها رو براساس مقدار ستونها دستهبندی میکنه. -
باید همراه توابع تجمیعی (Aggregate Functions) مثل
COUNT()
,SUM()
,AVG()
,MAX()
,MIN()
استفاده بشه.
🔹 مثال ساده
جدول: Orders
order_id | customer_id | amount |
---|---|---|
1 | 1 | 500 |
2 | 2 | 300 |
3 | 1 | 200 |
4 | 3 | 400 |
کوئری:
📌 خروجی:
customer_id | total_amount |
---|---|
1 | 700 |
2 | 300 |
3 | 400 |
توضیح: سفارشهای هر مشتری جمع زده شدن.
🔹 مثال با COUNT
📌 تعداد سفارشهای هر مشتری رو نشون میده.
🔹 مثال با چند ستون
📌 گروهبندی همزمان براساس customer_id
و amount
.
🔹 GROUP BY + HAVING
-
WHERE
→ برای فیلتر کردن قبل از گروهبندی. -
HAVING
→ برای فیلتر کردن بعد از گروهبندی.
📌 فقط مشتریهایی رو نشون میده که جمع سفارشهاشون بیشتر از 400 باشه.
✅ نکات مهم
-
ستونهایی که در
SELECT
استفاده میشن، یا باید داخلGROUP BY
باشن یا داخل تابع تجمیعی. -
HAVING
مکملGROUP BY
هست و شبیهWHERE
عمل میکنه ولی روی نتایج گروهبندی. -
ترتیب اجرای کوئری:
WHERE
→GROUP BY
→HAVING
→ORDER BY
.