„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie rufe ich das neueste Anmeldedatum für jeden Benutzer in SQL ab?

Wie rufe ich das neueste Anmeldedatum für jeden Benutzer in SQL ab?

Gepostet am 2025-02-06
Durchsuche:278

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

SQL -Abfrage für das letzte Login -Datensatzdatum für jeden Benutzer

Frage:

Angenommen, die Datenbanktabelle enthält Benutzeranmeldeinformationen, wie wir das letzte Anmeldedatum für jeden Benutzer abrufen? In Anbetracht der Tatsache, dass es doppelte Anmeldedaten geben kann.

Lösung:

Es gibt zwei allgemeine Möglichkeiten, dieses Problem zu lösen:

Methode 1: Unterabfrage mit innerer Join

Diese Methode verwendet eine Unterabfrage, um das letzte Anmeldedatum für jeden Benutzer zu identifizieren, und wird dann verwendet, um die Haupttabelle zu filtern:

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

Methode 2: Fensterfunktion

]

Für Datenbanken, die Fensterfunktionen unterstützen, kann eine effizientere Methode verwendet werden:

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

Diese Methode verwendet Zeilennummern, die auf Partitionsdaten sortieren, wobei dem letzten Datum jedes Benutzers eine Stufe 1 zugewiesen wird.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3