شبكة تعلم مع ناو

كيف أجد أول تاريخ وآخر تاريخ لكل عميل في SQL؟

لا يقتصر استخدام MIN وMAX على الأسعار والأعداد. يمكن تطبيقهما على عمود من النوع DATE لاستخراج أقدم تاريخ وأحدث تاريخ. وعند جمعهما مع GROUP BY customer_id، تحصل على حدود الفترة الخاصة بكل عميل، بدلا من حدود الفترة الخاصة بجميع العملاء معا.

مثال

SELECT customer_id,
       MIN(order_date) AS first_order,
       MAX(order_date) AS last_order
FROM orders
GROUP BY customer_id;

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

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

باختصار: اجمع حسب العميل، ثم طبق MIN وMAX على عمود التاريخ لتحديد بداية نشاطه ونهايته.

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

اختبر نفسك

خمسة أسئلة سريعة، مع الإجابة والشرح بعد كل سؤال.