Wählen Sie den neuesten Datensatz nach Datum in SQL aus

Wahlen Sie Den Neuesten Datensatz Nach Datum In Sql Aus



Wenn Sie in einer SQL-Datenbank arbeiten, stoßen Sie möglicherweise auf einen Fall, in dem Sie den aktuellsten Datensatz aus einer bestimmten Tabelle basierend auf dem Datum abrufen müssen. Dies kann für Paginierung, Bestandsverwaltung, Überwachungszwecke usw. dienen.

In diesem Leitfaden führen wir Sie durch die verschiedenen Methoden und Techniken, mit denen wir den neuesten Datensatz anhand des Datums aus einer Tabelle auswählen können.

Beispieldaten

Zu Demonstrationszwecken verwenden wir die Sakila-Beispieldatenbank, die für MySQL- und PostgreSQL-Varianten verfügbar ist.







Laden Sie die Beispieldatenbank gerne herunter und importieren Sie sie auf Ihren Server. Sie können bei Bedarf auch jeden anderen Datensatz verwenden.



Beispiel 1: ORDER BY

Die grundlegendste und einfachste Methode, mit der wir den neuesten Datensatz nach Datum abrufen können, ist die Verwendung einer SQL ORDER BY-Klausel.



Wir können die Datensätze basierend auf dem Datumswert in absteigender Reihenfolge ordnen und das Ergebnis dann auf nur eine Zeile beschränken.





Nehmen Sie zum Beispiel die Miettabelle aus der Sakila-Beispieldatenbank. Es enthält die Spalte „rental_date“, die das Datum angibt, an dem ein Film ausgeliehen wurde.

Damit können wir demonstrieren, wie man mit der ORDER BY-Klausel den aktuellsten Datensatz aus der Tabelle abruft.



WÄHLEN *

AB Vermietung

BEFEHL DURCH Mietdatum DESC

GRENZE 1 ;

In diesem Fall verwenden wir die ORDER BY-Klausel und übergeben das „rental_date“ als Zielspalte. Wir stellen außerdem sicher, dass die Datenbank angewiesen wird, die Datensätze in absteigender Reihenfolge zu ordnen.

Schließlich begrenzen wir auch die Anzahl der Ausgabedatensätze, die die neueste Zeile aus der Tabelle zurückgeben sollen.

Beispiel 2: Verwendung der Max()-Funktion

Wussten Sie, dass wir die Funktion max() für Datumswerte verwenden können? Ja, wir können eine einfache SQL-Unterabfrage und die Funktion max() für Datumswerte verwenden, um den neuesten Datensatz aus einer bestimmten Tabelle abzurufen.

Betrachten Sie das folgende Beispiel:

WÄHLEN *

AB Vermietung

WHERE Rental_date = (SELECT MAX(rental_date) FROM Rental);

Mithilfe der Unterabfrage wird das maximale Mietdatum aus der Tabelle ermittelt. In der Hauptabfrage sollten wir die Datensätze mit einem „rental_date“ abrufen, das dem maximalen Datum entspricht.

Beispiel 3: Fensterfunktionen

Für Datenbanken, die die Fensterfunktionen unterstützen, können wir eine Unterabfrage und die Funktion row_number() verwenden, um den neuesten Datensatz wie folgt aus der Tabelle abzurufen:

WÄHLEN *

AUS (

WÄHLEN *,

ROW_NUMBER() ÜBER ( BEFEHL DURCH Mietdatum DESC) AS rn

AB Vermietung

) AS-Unterabfrage

WO rn = 1 ;

Im gegebenen Beispiel weist die Unterabfrage jeder Zeile basierend auf der Spalte „rental_date“ in absteigender Reihenfolge mithilfe der Fensterfunktion ROW_NUMBER() eine Zeilennummer zu.

Die äußere Abfrage wählt dann alle Spalten aus der Unterabfrage aus, in denen die Zeilennummer 1 ist, und wählt somit effektiv die neuesten Mietdatensätze aus.

Abschluss

In diesem Beitrag haben wir die verschiedenen Methoden und Techniken untersucht, mit denen wir den neuesten Datensatz basierend auf einem Datum abrufen können.