شبكة تعلم مع ناو

ماذا تعيد دوال التجميع عندما يكون الجدول فارغا في SQL؟

عندما تطبق دوال التجميع على جدول فارغ دون GROUP BY، يعيد الاستعلام صفا واحدا يمثل نتيجة التجميع العام. تكون نتيجة COUNT صفرا، بينما تعيد SUM وAVG وMIN وMAX قيمة NULL. لا توجد قيم يمكن استخدامها لإنتاج مجموع أو متوسط أو حد أدنى أو أعلى.

مثال

SELECT COUNT(*) AS row_count,
       SUM(amount) AS total_amount,
       AVG(amount) AS average_amount
FROM orders;

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

إذا كان التقرير يحتاج إلى عرض صفر بدلا من مجموع مفقود، يمكن كتابة COALESCE(SUM(amount), 0). هذا قرار خاص بعرض النتيجة ومعناها، ولا يعني أن الدالة الأصلية تعيد الصفر تلقائيا عند غياب البيانات.

باختصار: التجميع العام على بيانات فارغة يعيد صفا واحدا، وفيه العد صفر وبقية هذه المجاميع NULL.

هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.

اختبر نفسك

خمسة أسئلة سريعة، مع الإجابة والشرح بعد كل سؤال.