1. الرئيسية
  2. مسارات التعلم
  3. تعلم SQL وقواعد البيانات من الصفر
  4. التجميع والإحصاء في SQL: COUNT وSUM وAVG وGROUP BY وHAVING
تعلم SQL وقواعد البيانات من الصفرالدرس 3 من 5

التجميع والإحصاء في SQL: COUNT وSUM وAVG وGROUP BY وHAVING

درس دوال التجميع في SQL بالعربية: COUNT وSUM وAVG وMIN وMAX، وتقسيم النتائج بـ GROUP BY، وتصفية المجموعات بـ HAVING، والفرق بين WHERE وHAVING.

محتويات الدرس
  1. الدوال الأساسية
  2. GROUP BY: إحصاء لكل مجموعة
  3. HAVING: تصفية المجموعات
  4. ترتيب التنفيذ الحقيقي
  5. تمرين

دوال التجميع تحوّل صفوفًا كثيرة إلى رقم واحد: عدد أو مجموع أو متوسط.

الدوال الأساسية

جرّب بنفسكمحرك SQLite يعمل في متصفحك مع قاعدة الطلاب والدورات

اضغط «تشغيل» لترى النتيجة هنا.

  • COUNT(*) عدد الصفوف، وCOUNT(city) عدد الصفوف التي فيها مدينة غير فارغة.
  • COUNT(DISTINCT city) عدد المدن المختلفة.

GROUP BY: إحصاء لكل مجموعة

عدد الطلاب في كل مدينة:

جرّب بنفسكمحرك SQLite يعمل في متصفحك مع قاعدة الطلاب والدورات

اضغط «تشغيل» لترى النتيجة هنا.

متوسط الدرجات لكل دورة، برقمها:

جرّب بنفسكمحرك SQLite يعمل في متصفحك مع قاعدة الطلاب والدورات

اضغط «تشغيل» لترى النتيجة هنا.

قاعدة مهمة: كل عمود في SELECT ليس داخل دالة تجميع يجب أن يكون في GROUP BY.

HAVING: تصفية المجموعات

WHERE تصفّي الصفوف قبل التجميع، وHAVING تصفّي المجموعات بعده:

جرّب بنفسكمحرك SQLite يعمل في متصفحك مع قاعدة الطلاب والدورات

اضغط «تشغيل» لترى النتيجة هنا.

ترتيب التنفيذ الحقيقي

تُكتب الأجزاء بترتيب، وتُنفذ بترتيب آخر:

  1. FROM اختيار الجدول
  2. WHERE تصفية الصفوف
  3. GROUP BY التجميع
  4. HAVING تصفية المجموعات
  5. SELECT اختيار الأعمدة
  6. ORDER BY الترتيب
  7. LIMIT التحديد

لهذا لا تستطيع استخدام اسم مستعار من SELECT داخل WHERE في أغلب قواعد البيانات.

تمرين

  1. احسب مجموع ساعات كل الدورات ومتوسط أسعارها.
  2. اعرض عدد الدورات التي سجل فيها كل طالب، بـ student_id.
  3. اعرض الطلاب الذين سجلوا في دورتين أو أكثر باستخدام HAVING.