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

متى نستخدم 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. ونريد حساب إجمالي عدد ألواح الحلوى التي باعها جميع الطلاب.

يمكننا استخدام الاستعلام التالي:
SELECT SUM(total) FROM students;
النتيجة المتوقعة هنا هي 41، أي مجموع جميع القيم الموجودة في عمود total.

حساب المجموع لكل طالب باستخدام GROUP BY
إذا أردت عرض مجموع المبيعات لكل طالب على حدة، فستحتاج إلى استخدام GROUP BY. في هذه الحالة نقوم بتجميع النتائج حسب الاسم.
SELECT name, SUM(total)
FROM students
GROUP BY name;
هذا الاستعلام يعرض اسم كل طالب إلى جانب مجموع القيم المرتبطة به.

ترتيب النتائج باستخدام ORDER BY
غالباً لا يكفي عرض النتائج فقط، بل نحتاج أيضاً إلى ترتيبها. يمكن ترتيب الطلاب من الأعلى مبيعاً إلى الأقل باستخدام ORDER BY مع DESC.
SELECT name, SUM(total)
FROM students
GROUP BY name
ORDER BY total DESC;
تشير DESC إلى الترتيب التنازلي، أي من الأكبر إلى الأصغر.

أما إذا كنت تريد الترتيب من الأصغر إلى الأكبر، فيمكنك حذف DESC:
SELECT name, SUM(total)
FROM students
GROUP BY name
ORDER BY total;

كيفية استخدام دالة AVG في SQL
تُستخدم دالة AVG لحساب المتوسط الحسابي لمجموعة من السجلات داخل جدول SQL. والمتوسط الحسابي يعني مجموع القيم مقسوماً على عددها.
على سبيل المثال، إذا كانت لدينا القيم: 2 و4 و4 و6 و6 و8، فإن مجموعها يساوي 30، وعددها 6، وبالتالي يكون المتوسط 5.
الصيغة الأساسية لدالة AVG هي:
SELECT AVG(column_name) FROM table_name;
مثال عملي على AVG
لنفترض أن لدينا جدول students نفسه، لكن هذه المرة يحتوي على عمود باسم scores يمثل درجات الاختبارات. نريد حساب متوسط درجات جميع الطلاب.

الاستعلام المطلوب:
SELECT AVG(scores) FROM students;
الناتج سيكون 85.333، وهو المتوسط الحسابي لجميع القيم في عمود scores.

تقريب المتوسط باستخدام ROUND
في بعض الحالات، قد تحتاج إلى تقريب الناتج ليكون أسهل في القراءة، ويمكن فعل ذلك عبر دالة ROUND.
SELECT ROUND(AVG(scores)) FROM students;

حساب متوسط كل طالب باستخدام GROUP BY
يمكنك أيضاً حساب متوسط الدرجات لكل طالب بشكل منفصل من خلال تجميع البيانات حسب الاسم:
SELECT name, ROUND(AVG(scores))
FROM students
GROUP BY name;
هذا النوع من الاستعلامات مفيد عند إعداد تقارير فردية أو مقارنة أداء المستخدمين أو الطلاب داخل النظام.

كيفية استخدام 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، فستتمكن من بناء استعلامات أكثر دقة واحترافية، سواء في التقارير البسيطة أو في أنظمة تحليل البيانات المتقدمة.