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!