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

ما نتيجة COUNT(1) وCOUNT(NULL) في SQL؟

تستقبل COUNT تعبيرا يمكن أن يكون اسم عمود أو قيمة ثابتة. عند استخدام قيمة ثابتة غير مفقودة مثل العدد واحد، يكون التعبير معروفا في كل صف، ولذلك يحسب COUNT(1) جميع الصفوف الداخلة في التجميع. أما COUNT(NULL) فيستقبل قيمة مفقودة في كل صف، فلا يجد أي قيمة قابلة للعد.

مثال

SELECT COUNT(1) AS row_count,
       COUNT(NULL) AS missing_expression_count
FROM tasks;

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

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

باختصار: يعد COUNT(1) الصفوف، بينما يعيد COUNT(NULL) صفرا لأن تعبيره مفقود دائما.

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

اختبر نفسك

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