📊 إتقان استخدام GROUP BY في SQL لتجميع البيانات باحترافية
عبارة GROUP BY هي واحدة من أقوى الأدوات في SQL التي تمكنك من تجميع الصفوف التي لها نفس القيم في أعمدة محددة، ثم تطبيق دوال تجميعية على هذه المجموعات لاستخراج إحصاءات مفيدة.
🎯 ما هي عبارة GROUP BY؟
عبارة GROUP BY تُستخدم لتجميع صفوف الجدول بناءً على قيم متشابهة في عمود أو أكثر. هذا يسمح لنا بتنفيذ عمليات حسابية على كل مجموعة بشكل منفصل، مثل عدّ العناصر أو جمع القيم أو حساب المتوسطات.
البناء الأساسي:
SELECT column1, aggregate_function(column2)
FROM table_name
GROUP BY column1;
🔢 الدوال التجميعية الشائعة
هذه أهم الدوال التي نستخدمها مع GROUP BY:
- COUNT(): تعد عدد الصفوف في كل مجموعة
- SUM(): تجمع القيم الرقمية في كل مجموعة
- AVG(): تحسب متوسط القيم في كل مجموعة
- MAX(): تجد أكبر قيمة في كل مجموعة
- MIN(): تجد أصغر قيمة في كل مجموعة
📝 أمثلة عملية مبسطة
المثال 1: عدّ الموظفين في كل قسم
SELECT department, COUNT(*) as employee_count
FROM employees
GROUP BY department;
هذا الاستعلام سيعيد عدد الموظفين في كل قسم من أقسام الشركة.
المثال 2: حساب مجموع المبيعات لكل منتج
SELECT product_name, SUM(sales_amount) as total_sales
FROM sales
GROUP BY product_name;
هنا نجمع إجمالي مبيعات كل منتج على حدة.
المثال 3: متوسط الرواتب في كل مدينة
SELECT city, AVG(salary) as average_salary
FROM employees
GROUP BY city;
نحسب متوسط رواتب الموظفين في كل مدينة.
⚠️ ملاحظات هامة
- جميع الأعمدة في SELECT يجب أن تكون إما في GROUP BY أو في دالة تجميعية
- ترتيب التنفيذ: WHERE → GROUP BY → HAVING → ORDER BY
- يمكن التجميع بأكثر من عمود عن طريق فصلهم بفاصلة في GROUP BY
🎓 مثال متقدم قليلاً: التجميع بأكثر من عمود
SELECT department, job_title, COUNT(*) as employee_count
FROM employees
GROUP BY department, job_title;
هذا الاستعلام سيعيد عدد الموظفين لكل مجموعة (قسم + مسمى وظيفي).
💡 نصائح عملية
- استخدم أسماء واضحة للدوال التجميعية باستخدام AS
- تأكد من أن جميع الأعمدة غير المجمعة موجودة داخل دوال تجميعية
- ابدأ باختبار استعلامات بسيطة قبل الانتقال للتجميع المعقد
ماذا سنتعلم في الدرس القادم؟ 🚀
في الدرس التالي، سنتعلم كيفية استخدام عبارة HAVING لتصفية نتائج المجموعات التي تم إنشاؤها بواسطة GROUP BY، مما سيمكننا من تطبيق شروط على النتائج المجمعة بشكل احترافي!
🎓 اختبر معلوماتك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال