كيف أحسب عدد القيم المفقودة في عمود باستخدام COUNT؟

متوسطقراءة دقيقةآخر تحديث 2 أكتوبر 2026

SQL قواعد البيانات

الإجابة

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

مثال

SELECT COUNT(*) - COUNT(phone) AS missing_phones
FROM customers;

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

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

باختصار: الفرق بين عدد الصفوف وعدد قيم العمود المعروفة يعطي عدد قيم NULL فيه.

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

اختبر فهمك

ما قيمة missing_phones في الاستعلام التالي؟

CREATE TABLE customers (
  id INT PRIMARY KEY,
  phone VARCHAR(20)
);
INSERT INTO customers VALUES
  (1, '123'), (2, NULL), (3, ''), (4, NULL);
SELECT COUNT(*) - COUNT(phone) AS missing_phones
FROM customers;