"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية استرداد أحدث تاريخ تسجيل الدخول لكل مستخدم في SQL؟

كيفية استرداد أحدث تاريخ تسجيل الدخول لكل مستخدم في SQL؟

نشر في 2025-02-06
تصفح:929

How to Retrieve the Latest Login Date for Each User in SQL?

استعلام SQL لتاريخ تسجيل تسجيل الدخول الأخير لكل مستخدم

سؤال:

افترض أن جدول قاعدة البيانات يحتوي على معلومات تسجيل الدخول إلى المستخدم ، كيف يمكننا استرداد تاريخ تسجيل الدخول الأخير لكل مستخدم؟ بالنظر إلى أنه قد يكون هناك تواريخ تسجيل دخول مكررة.

حل:

هناك طريقتان شائعتان لحل هذه المشكلة:

الطريقة 1: subquery باستخدام Inner Join

تستخدم هذه الطريقة مساعًا فرعيًا لتحديد تاريخ تسجيل الدخول الأخير لكل مستخدم ، ثم يتم استخدامه لتصفية الجدول الرئيسي:

select t.username, t.date, t.value
from MyTable t
inner join (
    select username, max(date) as MaxDate
    from MyTable
    group by username
) tm on t.username = tm.username and t.date = tm.MaxDate

الطريقة 2: وظيفة النافذة

]

لقواعد البيانات التي تدعم وظائف نافذة ، يمكن استخدام طريقة أكثر كفاءة:

select x.username, x.date, x.value 
from (
    select username, date, value,
        row_number() over (partition by username order by date desc) as _rn
    from MyTable 
) x
where x._rn = 1

تستخدم هذه الطريقة فرز أرقام الصفوف على بيانات القسم ، حيث يتم تعيين التاريخ الأخير لكل مستخدم في المستوى 1.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3