شرح صفوف ومحتوى الفقرة
توجّه الكلمة المفتاحية DISTINCT داخل COUNT(DISTINCT expr) محرك MySQL إلى إزالة التكرار أولاً ثم عد القيم الفريدة غير الفارغة فقط.
- حساب الكيانات الفريدة: بينما تعد
COUNT(customer_id)إجمالي الطلبات، تعدCOUNT(DISTINCT customer_id)عدد العملاء الفريدين الذين أجروا تلك الطلبات. - عد التوليفات الفريدة لعدة أعمدة: يتميز MySQL بدعم تمرير أكثر من عمود داخل الدالة مثل
COUNT(DISTINCT country, city)لحساب عدد الثنائيات الفريدة غير الفارغة مباشرة.
وكما هو الحال في COUNT(col)، تتجاهل COUNT(DISTINCT col) القيم الفارغة NULL تماماً.
SQL
-- Count total orders vs unique buyers and unique cities
SELECT COUNT(*) AS total_orders,
COUNT(DISTINCT customer_id) AS unique_buyers,
COUNT(DISTINCT country, city) AS unique_locations
FROM orders
WHERE order_status = 'paid';