انتقل إلى محتوى الدرس

COUNT Star vs COUNT Column عد الصفوف مقابل عد القيم

فرّق بدقة بين عد إجمالي الصفوف عبر COUNT(*) وعد القيم غير الفارغة في عمود محدد عبر COUNT(column).
1 صفوف تعليمية
MySQL
8 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تتخذ دالة العد COUNT() صورتين أساسيتين تختلف نتيجتهما عند احتواء العمود على قيم فارغة NULL:

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

إذا لم يطابق الاستعلام أي صف، تُعيد دالة COUNT() دائماً العدد الصحيح 0 ولا تُعيد NULL أبداً.

SQL
-- Total orders vs orders that have been shipped
SELECT COUNT(*)          AS total_orders,
       COUNT(shipped_at) AS shipped_orders,
       COUNT(*) - COUNT(shipped_at) AS unshipped_orders
FROM orders;