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

هل تحسب COUNT(*) الصفوف التي تحتوي على NULL في SQL؟

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

تُحتسب الصفوف حتى عندما يحتوي أحد أعمدتها على NULL، لأن COUNT(*) لا تعتمد على وجود قيمة في عمود معين. كما تُحتسب الصفوف المتشابهة كلٌّ على حدة. هذه الدالة مناسبة لمعرفة عدد المهام أو الكتب أو المشاركين المسجلين، ويمكن إعطاء عمود النتيجة اسمًا واضحًا باستخدام AS. النتيجة دون GROUP BY تكون صفًا واحدًا يحتوي على العدد المحسوب.

مثال

CREATE TABLE tasks_count_example (id INT, title VARCHAR(40));
INSERT INTO tasks_count_example VALUES (1, 'Read'), (2, NULL), (3, 'Write');
SELECT COUNT(*) AS total FROM tasks_count_example;

باختصار: COUNT(*) تعد الصفوف، بما فيها الصفوف التي تحتوي على قيم NULL.

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

اختبر نفسك

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