Heim >Datenbank >MySQL-Tutorial >Wie kann ich das letzte Anmeldedatum für jeden Benutzer in SQL abrufen?

Wie kann ich das letzte Anmeldedatum für jeden Benutzer in SQL abrufen?

DDD
DDDOriginal
2025-01-15 17:06:47462Durchsuche

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

SQL fragt das letzte Anmeldedatensatzdatum jedes Benutzers ab

Frage:

Angenommen, die Datenbanktabelle enthält Benutzeranmeldeinformationen. Wie rufen wir das letzte Anmeldedatum für jeden Benutzer ab? Berücksichtigen Sie die Möglichkeit doppelter Anmeldedaten.

Lösung:

Es gibt zwei gängige Möglichkeiten, dieses Problem zu lösen:

Methode 1: Verwendung der INNER JOIN-Unterabfrage

Diese Methode verwendet eine Unterabfrage, um das letzte Anmeldedatum jedes Benutzers zu ermitteln, das dann zum Filtern der Haupttabelle verwendet wird:

<code class="language-sql">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</code>

Methode 2: Fensterfunktion

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

<code class="language-sql">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</code>

Diese Methode verwendet die Zeilennummernsortierung der partitionierten Daten, wobei dem letzten Datum jedes Benutzers Rang 1 zugewiesen wird.

Das obige ist der detaillierte Inhalt vonWie kann ich das letzte Anmeldedatum für jeden Benutzer in SQL abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn