Selecteer de meest recente record op datum in SQL

Selecteer De Meest Recente Record Op Datum In Sql



Wanneer u in een SQL-database werkt, kunt u een exemplaar tegenkomen waarin u op basis van de datum de meest recente record uit een bepaalde tabel moet ophalen. Dit kan zijn voor paginering, voorraadbeheer, monitoringdoeleinden, enz.

In deze handleiding leiden we u door de verschillende methoden en technieken die we kunnen gebruiken om het meest recente record uit een tabel te selecteren op basis van de datum.

Voorbeeldgegevens

Voor demonstratiedoeleinden gebruiken we de Sakila-voorbeelddatabase die beschikbaar is voor MySQL- en PostgreSQL-varianten.







U kunt de voorbeelddatabase gerust downloaden en importeren op uw server. U kunt indien nodig ook een andere gegevensset gebruiken.



Voorbeeld 1: BESTEL OP

De meest basale en eenvoudigste methode die we kunnen gebruiken om de meest recente record op datum op te halen, is door een SQL ORDER BY-clausule te gebruiken.



We kunnen de records in aflopende volgorde ordenen op basis van de datumwaarde en het resultaat vervolgens beperken tot slechts één rij.





Neem bijvoorbeeld de huurtabel uit de voorbeelddatabase van Sakila. Het bevat de kolom “huurdatum” die de datum aangeeft waarop een film is verhuurd.

We kunnen dit gebruiken om te demonstreren hoe we de ORDER BY-clausule kunnen gebruiken om de meest recente record uit de tabel op te halen.



SELECTEER *

VAN verhuur

VOLGORDE BY verhuurdatum DESC

BEGRENZING 1 ;

In dit geval gebruiken we de ORDER BY-clausule en geven we de ‘huurdatum’ door als doelkolom. We zorgen er ook voor dat de database de records in aflopende volgorde ordent.

Ten slotte beperken we ook het aantal uitvoerrecords dat de meest recente rij uit de tabel moet retourneren.

Voorbeeld 2: De functie Max() gebruiken

Wist u dat we de functie max() kunnen gebruiken voor datumwaarden? Ja, we kunnen een eenvoudige SQL-subquery en de functie max() op datumwaarden gebruiken om de meest recente record uit een bepaalde tabel op te halen.

Beschouw het volgende voorbeeld:

SELECTEER *

VAN verhuur

WAAR verhuurdatum = (SELECT MAX(huurdatum) VAN huur);

Met behulp van de subquery wordt de maximale huurdatum uit de tabel gevonden. In de hoofdquery moeten we de records ophalen met een “huurdatum” gelijk aan de maximale datum.

Voorbeeld 3: Vensterfuncties

Voor databases die de vensterfuncties ondersteunen, kunnen we een subquery en de functie row_number() gebruiken om het meest recente record als volgt uit de tabel op te halen:

SELECTEER *

VAN (

SELECTEER *,

ROW_NUMBER() OVER ( VOLGORDE BY verhuurdatum DESC) AS rn

VAN verhuur

) AS-subquery

WAAR rn = 1 ;

In het gegeven voorbeeld wijst de subquery een rijnummer toe aan elke rij op basis van de kolom “huurdatum” in aflopende volgorde met behulp van de vensterfunctie ROW_NUMBER().

De buitenste query selecteert vervolgens alle kolommen uit de subquery waarbij het rijnummer 1 is, waardoor in feite de meest recente huurrecord(s) worden geselecteerd.

Conclusie

In dit bericht hebben we de verschillende methoden en technieken onderzocht die we kunnen gebruiken om de meest recente record op te halen op basis van een datum.