دوال التجميع في SQL للمبتدئين: شرح عملي مع أمثلة استعلامات واضحة

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

ما هي دوال التجميع في SQL؟

تُعد دوال التجميع في SQL من الأدوات الأساسية لتحليل البيانات واستخلاص نتائج سريعة من عدد كبير من الصفوف داخل قاعدة البيانات. وإذا سبق لك استخدام الدالة SUM في Google Sheets أو Excel، فستجد الفكرة مألوفة جداً هنا أيضاً.

وظيفة دوال التجميع هي تنفيذ عملية محددة على مجموعة من الصفوف، ثم إرجاع نتيجة واحدة مفيدة. على سبيل المثال، إذا كنت تدير حملة تبرعات سنوية، ولديك جدول يحتوي على أسماء المتبرعين ومبالغ تبرعاتهم خلال أعوام مختلفة، فبإمكانك استخدام COUNT() لمعرفة عدد التبرعات، أو SUM() لحساب إجمالي الأموال التي تم جمعها.

شرح دوال التجميع في SQL مع أمثلة عملية على استعلامات قواعد البيانات للمبتدئين

في هذا المقال، سنشرح أشهر دوال التجميع التي يحتاجها أي مبتدئ في SQL، وهي:

  • COUNT()
  • SUM()
  • MIN() وMAX()
  • AVG()

مجموعة البيانات المستخدمة في الشرح

حتى يكون الشرح عملياً وواضحاً، سنفترض وجود جدول للمتبرعين باسم donors يحتوي على البيانات التالية:

name            email                    donation_2020   donation_2021
Andrew Jones    ajones@someemail.com     400             500
Maria Rodriguez maria77@someemail.com    1000            350
Gerry Ford      NULL                     25              25
Isabella Munn   isamun91@someemail.com   250             NULL
Jennifer Ward   jjw1972@someemail.com    2000            2300
Rowan Parker    NULL                     5000            4000

هذا المثال الصغير كافٍ لفهم كيفية عمل دوال التجميع على البيانات الحقيقية، خصوصاً مع وجود قيم NULL التي تؤثر في بعض النتائج.

استخدام الدالة COUNT() لحساب عدد الصفوف

تُستخدم الدالة COUNT() لإرجاع عدد الصفوف. وفي أبسط حالاتها، يمكنها حساب جميع السجلات الموجودة في الجدول.

حساب إجمالي عدد المتبرعين

إذا أردت معرفة عدد السجلات الموجودة في جدول donors، يمكنك تنفيذ الاستعلام التالي:

SELECT COUNT(*) FROM donors;

ستكون النتيجة 6، لأن الجدول يحتوي على ستة متبرعين.

قد يبدو هذا بسيطاً في المثال الحالي، لكن أهمية COUNT(*) تظهر بوضوح عندما يكون لديك آلاف أو ملايين الصفوف داخل قاعدة البيانات.

حساب الصفوف التي تحتوي على قيمة فعلية

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

SELECT COUNT(email) FROM donors;

النتيجة هنا ستكون 4، لأن الدالة COUNT(column_name) تتجاهل القيم NULL وتحسب فقط الصفوف التي تحتوي على بيانات فعلية.

استخدام الاسم المستعار مع AS

عند تنفيذ دوال التجميع، يكون اسم العمود الناتج أحياناً عاماً وغير وصفي. لذلك من الأفضل استخدام الكلمة AS لإعطاء النتيجة اسماً أوضح:

SELECT COUNT(email) AS email_count FROM donors;

بهذه الطريقة سيظهر اسم العمود الناتج على أنه email_count، وهو أكثر وضوحاً عند قراءة النتائج أو بناء التقارير.

استخدام الدالة SUM() لحساب الإجمالي

تُعد الدالة SUM() من أكثر دوال التجميع استخداماً، لأنها تجمع القيم الرقمية الموجودة في عمود معين عبر عدة صفوف.

حساب إجمالي تبرعات عام 2021

إذا أردت جمع كل التبرعات المسجلة في العمود donation_2021، فاستخدم الاستعلام التالي:

SELECT SUM(donation_2021) FROM donors;

النتيجة ستكون 7175.

من المهم الانتباه إلى أن SUM() تتجاهل القيم NULL تلقائياً، لذلك لن تتسبب القيم الفارغة في إفساد الناتج.

ملاحظة مهمة حول آلية عمل SUM()

الدالة SUM() تعمل عبر الصفوف داخل عمود واحد، وليس عبر الأعمدة داخل الصف نفسه. بمعنى آخر، يمكنك استخدامها لجمع جميع قيم donation_2021 لكل المتبرعين، لكن لا يمكنك بها مباشرة جمع donation_2020 وdonation_2021 للشخص نفسه داخل الاستعلام التجميعي البسيط ذاته دون صياغة إضافية.

استخدام MIN() وMAX() لمعرفة القيم الدنيا والعليا

عندما تحتاج إلى معرفة أصغر قيمة أو أكبر قيمة داخل عمود معين، فإن الدالتين MIN() وMAX() هما الخيار المثالي.

استخراج أقل وأعلى تبرع في عام 2021

للحصول على أصغر مبلغ تبرع وأكبر مبلغ تبرع من العمود donation_2021، استخدم الاستعلام التالي:

SELECT MIN(donation_2021) AS "Minimum donation 2021",
       MAX(donation_2021) AS "Maximum donation 2021"
FROM donors;

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

هل تعمل MIN() وMAX() مع النصوص والتواريخ؟

نعم، وهذه نقطة مفيدة جداً. فالدالتان MIN() وMAX() لا تقتصران على الأرقام فقط، بل يمكن استخدامهما مع أنواع بيانات أخرى مثل النصوص والتواريخ:

  • MIN() تعيد أصغر رقم، أو أقرب قيمة نصية إلى بداية الترتيب الأبجدي، أو أقدم تاريخ.
  • MAX() تعيد أكبر رقم، أو أقرب قيمة نصية إلى نهاية الترتيب الأبجدي، أو أحدث تاريخ.

وهذا يجعل هاتين الدالتين مفيدتين جداً في إنشاء تقارير سريعة واستخلاص مؤشرات مهمة من البيانات.

استخدام الدالة AVG() لحساب المتوسط

تُستخدم الدالة AVG() لحساب المتوسط الحسابي للقيم الرقمية داخل عمود معين. وكما هو الحال مع SUM()، فإنها تتجاهل القيم NULL.

حساب متوسط التبرعات لعام 2020

إذا أردت معرفة متوسط التبرعات الموجودة في العمود donation_2020، نفّذ الاستعلام التالي:

SELECT AVG(donation_2020) FROM donors;

ستكون النتيجة 1435.

تُعد AVG() مفيدة جداً عندما تريد تقييم الأداء العام أو فهم السلوك المتوسط للمستخدمين أو العملاء أو المتبرعين دون الحاجة إلى مراجعة كل سجل يدوياً.

متى تكون دوال التجميع مفيدة في المشاريع الحقيقية؟

لا يقتصر استخدام دوال التجميع على الأمثلة التعليمية فقط، بل إنها تُستخدم باستمرار في التطبيقات العملية ولوحات البيانات وأنظمة التقارير. من أبرز الاستخدامات:

  • حساب عدد العملاء أو الطلبات أو الزيارات باستخدام COUNT().
  • جمع الإيرادات أو المصروفات أو التبرعات عبر SUM().
  • تحديد أعلى قيمة شراء أو أقل سعر باستخدام MAX() وMIN().
  • حساب متوسط المبيعات أو متوسط التقييمات بواسطة AVG().

كلما أتقنت هذه الدوال، أصبحت أكثر قدرة على تحليل البيانات بسرعة وكتابة استعلامات أكثر كفاءة داخل أنظمة SQL.

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

  • تأكد دائماً من فهم تأثير القيم NULL على النتائج.
  • استخدم الأسماء المستعارة AS لتحسين وضوح الأعمدة الناتجة.
  • اختر العمود المناسب للتجميع، لأن الدوال تعمل على عمود محدد عبر عدة صفوف.
  • استخدم هذه الدوال مع شروط لاحقاً عند تعلم WHERE وGROUP BY لبناء تقارير أكثر تقدماً.

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

تمثل دوال التجميع في SQL نقطة انطلاق أساسية لكل من يريد فهم تحليل البيانات داخل قواعد البيانات. الدوال COUNT() وSUM() وMIN() وMAX() وAVG() تمنحك القدرة على تحويل الصفوف الكثيرة إلى معلومات واضحة وسريعة الاستيعاب. ومن الناحية العملية، فإن إتقان هذه الدوال يختصر كثيراً من الوقت عند إعداد التقارير، كما يرفع من جودة الاستعلامات التي تبنيها في المشاريع الحقيقية.

اترك تعليقاً

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