Izberite najnovejši zapis po datumu v SQL

Izberite Najnovejsi Zapis Po Datumu V Sql



Ko delate v bazi podatkov SQL, lahko naletite na primer, ko morate pridobiti najnovejši zapis iz dane tabele na podlagi datuma. To je lahko za paginacijo, upravljanje inventarja, spremljanje itd.

V tem priročniku vas bomo popeljali skozi različne metode in tehnike, ki jih lahko uporabimo za izbiro najnovejšega zapisa iz tabele na podlagi datuma.

Vzorčni podatki

Za predstavitvene namene uporabljamo vzorčno bazo podatkov Sakila, ki je na voljo za različici MySQL in PostgreSQL.







Prenesite in uvozite vzorčno zbirko podatkov na svoj strežnik. Po potrebi lahko uporabite tudi kateri koli drug nabor podatkov.



Primer 1: NAROČI PO

Najosnovnejša in najpreprostejša metoda, ki jo lahko uporabimo za pridobivanje najnovejšega zapisa po datumu, je uporaba klavzule SQL ORDER BY.



Zapise lahko razvrstimo v padajočem vrstnem redu glede na vrednost datuma in nato omejimo rezultat na samo eno vrstico.





Vzemimo za primer tabelo najemnin iz vzorčne zbirke podatkov Sakila. Vsebuje stolpec »rental_date«, ki označuje datum, ko je bil film izposojen.

To lahko uporabimo za prikaz uporabe klavzule ORDER BY za pridobitev najnovejšega zapisa iz tabele.



IZBERI *

IZ najema

NAROČITE PO rental_date DESC

OMEJITEV 1 ;

V tem primeru uporabimo klavzulo ORDER BY in posredujemo »rental_date« kot ciljni stolpec. Zagotavljamo tudi, da bazi podatkov povemo, naj razvrsti zapise v padajočem vrstnem redu.

Končno omejimo tudi število izhodnih zapisov, ki naj vrnejo zadnjo vrstico iz tabele.

2. primer: uporaba funkcije Max().

Ali ste vedeli, da lahko uporabimo funkcijo max() za datumske vrednosti? Da, uporabimo lahko preprosto podpoizvedbo SQL in funkcijo max() za datumske vrednosti, da pridobimo najnovejši zapis iz dane tabele.

Razmislite o naslednjem primeru:

IZBERI *

IZ najema

WHERE datum_najema = (SELECT MAX(datum_najema) FROM najem);

S pomočjo podpoizvedbe najde najdaljši datum najema iz tabele. V glavni poizvedbi bi morali pridobiti zapise z »rental_date«, ki je enak največjemu datumu.

Primer 3: Funkcije oken

Za baze podatkov, ki podpirajo okenske funkcije, lahko uporabimo podpoizvedbo in funkcijo row_number(), da pridobimo najnovejši zapis iz tabele, kot sledi:

IZBERI *

OD (

IZBERI *,

ROW_NUMBER() NAD ( NAROČITE BY rental_date DESC) AS rn

IZ najema

) AS podpoizvedba

KJE rn = 1 ;

V danem primeru podpoizvedba vsaki vrstici dodeli številko vrstice na podlagi stolpca »rental_date« v padajočem vrstnem redu z uporabo okenske funkcije ROW_NUMBER().

Zunanja poizvedba nato izbere vse stolpce iz podpoizvedbe, kjer je številka vrstice 1, in dejansko izbere najnovejše zapise o najemu.

Zaključek

V tej objavi smo raziskali različne metode in tehnike, ki jih lahko uporabimo za pridobitev najnovejšega zapisa na podlagi datuma.