يمكن اختيار أحدث صف لكل مجموعة بفكرة البحث عن منافس أحدث منه. نعامل الطلب الحالي بوصفه مرشحا، ثم نربطه بطلب آخر للعميل نفسه يكون أحدث منه. إذا لم نجد منافسا، يكون الطلب المرشح هو الأحدث. يستخدم هذا الأسلوب LEFT JOIN مع الجدول نفسه ثم اختبار غياب المطابقة.
يجب تحديد معنى الأحدث بدقة عند تساوي التوقيت. يمكن اعتبار التوقيت الأكبر أحدث، وعند تساويه نختار المعرّف الأكبر. يفترض المثال أن created_at لا يقبل NULL، وأن id مفتاح أساسي، حتى تكون المقارنة محددة ويمكن حسم التعادل بين الطلبات.
مثال
SELECT o.id, o.customer_id
FROM orders AS o
LEFT JOIN orders AS newer
ON newer.customer_id = o.customer_id
AND (newer.created_at > o.created_at
OR (newer.created_at = o.created_at AND newer.id > o.id))
WHERE newer.id IS NULL;
الأقواس تجمع حالتي التفوق ضمن شرط العميل نفسه. من دون ترتيب واضح للتعادل، قد يبقى أكثر من طلب مرشح عند مشاركة عدة طلبات أحدث توقيت.
باختصار: أحدث طلب هو الذي لا يوجد للعميل نفسه طلب يتفوق عليه وفق التوقيت ثم المعرّف.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.