الدرس 10 من 10
القيم الفريدة
- 10 دقائق
- 4 فحوص
- 3 تلميحات
- إلى المطلوب
هدف الدرس
الكلمة DISTINCT والعدّ بـ COUNT(DISTINCT)
الشرح
يُرجع SELECT DISTINCT city FROM orders كل مدينة مرّة واحدة مهما تكرّرت، لكنه يعمل على الصفّ كلّه، فالأمر DISTINCT city, customer يحذف الأزواج المكرّرة فقط، فتتكرّر المدينة مع كل عميل مختلف.
وكذلك داخل العدّ، فـCOUNT(customer) تعدّ كل طلب فيه اسم عميل، فيُعدّ العميل الذي له ثلاثة طلبات ثلاث مرّات، أمّا COUNT(DISTINCT customer) فتعدّه مرّة واحدة.
والفرق بين الرقمين معلومة مفيدة في حدّ ذاتها، فكثرة الطلبات مع قلّة العملاء تعني أنّ العملاء يعودون للشراء.
المطلوب
اعرض لكل مدينة city وorders_count لعدد الطلبات وbuyers لعدد العملاء المختلفين.
الفحوص
4 فحوص- الأعمدة city وorders_count وbuyers
- صفّ واحد لكل مدينة
- العمود orders_count يعدّ كل الطلبات
- العمود buyers يعدّ العميل مرّة واحدة
الجداول المتاحة في هذا الدرس
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
customer TEXT NOT NULL,
city TEXT NOT NULL,
amount INTEGER NOT NULL,
rating INTEGER
);
INSERT INTO orders (customer, city, amount, rating) VALUES
('ليان', 'الرياض', 120, 5),
('خالد', 'جدة', 300, 4),
('ليان', 'الرياض', 80, NULL),
('ريم', 'الدمام', 45, 3),
('سارة', 'الرياض', 210, 5),
('خالد', 'جدة', 50, NULL),
('فهد', 'جدة', 150, 2),
('نورة', 'الرياض', 95, 4),
('عمر', 'مكة', 400, NULL),
('ليان', 'الرياض', 35, 4),
('ريم', 'الدمام', 130, NULL),
('سارة', 'الرياض', 70, 3);