يدعم MySQL تمرير أكثر من تعبير إلى COUNT(DISTINCT) لحساب عدد التركيبات المختلفة. عند كتابة عمودين، يعد الاستعلام كل زوج مختلف مرة واحدة، بدلا من جمع عدد القيم المختلفة في كل عمود على حدة. يفيد ذلك في حساب تركيبات البلد والمدينة أو القسم والمسمى الوظيفي.
مثال
SELECT COUNT(DISTINCT country, city) AS location_count
FROM customers;
هناك تفصيل مهم: إذا كانت قيمة أي تعبير في الزوج NULL، فلن يدخل ذلك الزوج في العد. لذلك لا يساوي هذا التعبير دائما عدد الصفوف الناتجة عن GROUP BY country, city، لأن التجميع يستطيع إنشاء مجموعات تحتوي مفاتيحها على قيم مفقودة.
كما يجب تجنب دمج العمودين نصيا دون تصميم واضح، لأن تراكيب مختلفة قد تنتج النص نفسه. استخدام الصيغة متعددة الأعمدة يجعل حدود القيم واضحة، لكنه يظل خاضعا لقاعدة استبعاد الأزواج ذات القيم المفقودة.
باختصار: تحسب الصيغة متعددة الأعمدة التركيبات المختلفة التي تكون جميع عناصرها غير مفقودة.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.