شرح دوال SQL Count وSUM وAVG: كيفية العد والجمع وحساب المتوسط في SQL

دقائق القراءة: 4

دليل عملي لاستخدام SQL Count وSUM وAVG في SQL

عند التعامل مع قواعد البيانات، ستحتاج كثيراً إلى استخراج إحصاءات سريعة من الجداول، مثل عدد السجلات، أو مجموع القيم، أو متوسط النتائج. توفّر SQL مجموعة من الدوال المدمجة التي تجعل هذه المهام سهلة وفعالة، وأبرزها COUNT وSUM وAVG.

في هذا المقال، سنشرح بطريقة عملية كيفية استخدام هذه الدوال مع أمثلة واضحة، إضافة إلى توظيف GROUP BY وORDER BY لتنظيم النتائج وعرضها بصورة أكثر فائدة.

صورة توضيحية لمفاهيم تحليل البيانات والاستعلامات في SQL

متى نستخدم COUNT وSUM وAVG في SQL؟

  • COUNT: لحساب عدد الصفوف أو السجلات.
  • SUM: لجمع القيم الرقمية داخل عمود محدد.
  • AVG: لحساب المتوسط الحسابي لمجموعة من القيم.

هذه الدوال مفيدة جداً في التقارير، ولوحات التحكم، وتحليل أداء المبيعات، ونتائج الطلاب، والبيانات المالية.

كيفية استخدام دالة SUM في SQL

إذا كنت تريد جمع مجموعة من الأرقام داخل جدول، فإن دالة SUM هي الخيار المناسب. الصيغة الأساسية تكون كالتالي:

SELECT SUM(column_name) FROM table_name;

في هذا الاستعلام:

  • الأمر SELECT يطلب من قاعدة البيانات جلب قيمة أو بيانات.
  • الجزء FROM يحدد اسم الجدول الذي ستُنفَّذ عليه العملية.

مثال عملي على SUM

لنفترض أن لدينا جدولاً باسم students يحتوي على الأعمدة التالية: id وname وdate وtotal. ونريد حساب إجمالي عدد ألواح الحلوى التي باعها جميع الطلاب.

جدول students يحتوي على بيانات الطلاب وقيم total في SQL

يمكننا استخدام الاستعلام التالي:

SELECT SUM(total) FROM students;

النتيجة المتوقعة هنا هي 41، أي مجموع جميع القيم الموجودة في عمود total.

نتيجة استخدام دالة SUM لحساب مجموع total في جدول students

حساب المجموع لكل طالب باستخدام GROUP BY

إذا أردت عرض مجموع المبيعات لكل طالب على حدة، فستحتاج إلى استخدام GROUP BY. في هذه الحالة نقوم بتجميع النتائج حسب الاسم.

SELECT name, SUM(total)
FROM students
GROUP BY name;

هذا الاستعلام يعرض اسم كل طالب إلى جانب مجموع القيم المرتبطة به.

نتائج تجميع مجموع total لكل طالب باستخدام GROUP BY في SQL

ترتيب النتائج باستخدام ORDER BY

غالباً لا يكفي عرض النتائج فقط، بل نحتاج أيضاً إلى ترتيبها. يمكن ترتيب الطلاب من الأعلى مبيعاً إلى الأقل باستخدام ORDER BY مع DESC.

SELECT name, SUM(total)
FROM students
GROUP BY name
ORDER BY total DESC;

تشير DESC إلى الترتيب التنازلي، أي من الأكبر إلى الأصغر.

ترتيب نتائج SUM تنازلياً باستخدام ORDER BY DESC في SQL

أما إذا كنت تريد الترتيب من الأصغر إلى الأكبر، فيمكنك حذف DESC:

SELECT name, SUM(total)
FROM students
GROUP BY name
ORDER BY total;

ترتيب نتائج SUM تصاعدياً باستخدام ORDER BY في SQL

كيفية استخدام دالة AVG في SQL

تُستخدم دالة AVG لحساب المتوسط الحسابي لمجموعة من السجلات داخل جدول SQL. والمتوسط الحسابي يعني مجموع القيم مقسوماً على عددها.

على سبيل المثال، إذا كانت لدينا القيم: 2 و4 و4 و6 و6 و8، فإن مجموعها يساوي 30، وعددها 6، وبالتالي يكون المتوسط 5.

الصيغة الأساسية لدالة AVG هي:

SELECT AVG(column_name) FROM table_name;

مثال عملي على AVG

لنفترض أن لدينا جدول students نفسه، لكن هذه المرة يحتوي على عمود باسم scores يمثل درجات الاختبارات. نريد حساب متوسط درجات جميع الطلاب.

جدول students يحتوي على درجات scores لحساب المتوسط في SQL

الاستعلام المطلوب:

SELECT AVG(scores) FROM students;

الناتج سيكون 85.333، وهو المتوسط الحسابي لجميع القيم في عمود scores.

نتيجة استخدام AVG لحساب متوسط الدرجات في جدول students

تقريب المتوسط باستخدام ROUND

في بعض الحالات، قد تحتاج إلى تقريب الناتج ليكون أسهل في القراءة، ويمكن فعل ذلك عبر دالة ROUND.

SELECT ROUND(AVG(scores)) FROM students;

استخدام ROUND مع AVG لتقريب متوسط الدرجات في SQL

حساب متوسط كل طالب باستخدام GROUP BY

يمكنك أيضاً حساب متوسط الدرجات لكل طالب بشكل منفصل من خلال تجميع البيانات حسب الاسم:

SELECT name, ROUND(AVG(scores))
FROM students
GROUP BY name;

هذا النوع من الاستعلامات مفيد عند إعداد تقارير فردية أو مقارنة أداء المستخدمين أو الطلاب داخل النظام.

حساب متوسط درجات كل طالب باستخدام GROUP BY وAVG في SQL

كيفية استخدام COUNT في SQL

رغم أن الأمثلة السابقة ركزت على SUM وAVG، فإن دالة COUNT تُعد من أكثر الدوال استخداماً في SQL، لأنها تتيح لك معرفة عدد السجلات بسهولة.

الصيغة الأساسية هي:

SELECT COUNT(*) FROM table_name;

يُستخدم * هنا لعدّ جميع الصفوف داخل الجدول.

مثال على COUNT

SELECT COUNT(*) FROM students;

يعرض هذا الاستعلام العدد الكلي للطلاب الموجودين في جدول students.

كما يمكنك دمج COUNT مع GROUP BY لمعرفة عدد السجلات في كل مجموعة، مثل عدد السجلات المرتبطة بكل طالب:

SELECT name, COUNT(*)
FROM students
GROUP BY name;

أفضل الممارسات عند استخدام الدوال التجميعية في SQL

  • تأكد من أن العمود المستخدم مع SUM وAVG يحتوي على قيم رقمية.
  • استخدم GROUP BY فقط عندما تحتاج إلى تقسيم النتائج إلى مجموعات منطقية.
  • أضف ORDER BY عندما تريد جعل النتائج أكثر وضوحاً للمستخدم أو فريق التحليل.
  • استفد من ROUND عندما تكون القيم العشرية غير ضرورية في التقرير النهائي.
  • عند كتابة استعلامات تحليلية، حاول تسمية الأعمدة الناتجة باستخدام AS لتسهيل قراءة النتائج.

مثال محسّن لقراءة أوضح

SELECT name, SUM(total) AS total_sales
FROM students
GROUP BY name
ORDER BY total_sales DESC;

هذا الأسلوب يجعل مخرجات الاستعلام أكثر احترافية، خاصة عند عرضها في التقارير أو التطبيقات.

مقارنة سريعة بين COUNT وSUM وAVG

الدالة وظيفتها نوع الاستخدام
COUNT عدّ السجلات معرفة عدد الصفوف أو العناصر
SUM جمع القيم حساب الإجماليات المالية أو الكمية
AVG حساب المتوسط تحليل الأداء والمتوسطات الرقمية

الخلاصة التقنية

تُعد الدوال COUNT وSUM وAVG من الأساسيات التي لا غنى عنها في SQL، لأنها تختصر كثيراً من الجهد عند تحليل البيانات واستخراج المؤشرات المهمة. إذا أتقنت استخدامها مع GROUP BY وORDER BY وROUND، فستتمكن من بناء استعلامات أكثر دقة واحترافية، سواء في التقارير البسيطة أو في أنظمة تحليل البيانات المتقدمة.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *