Vyberte najnovší záznam podľa dátumu v SQL

Vyberte Najnovsi Zaznam Podla Datumu V Sql



Pri práci s databázou SQL sa môžete stretnúť s prípadom, keď potrebujete získať najnovší záznam z danej tabuľky na základe dátumu. Môže to byť na účely stránkovania, správy zásob, monitorovania atď.

V tejto príručke vás prevedieme rôznymi metódami a technikami, ktoré môžeme použiť na výber najnovšieho záznamu z tabuľky na základe dátumu.

Vzorové údaje

Na demonštračné účely používame vzorovú databázu Sakila, ktorá je dostupná pre verzie MySQL a PostgreSQL.







Neváhajte si stiahnuť a importovať vzorovú databázu na váš server. Podľa potreby môžete použiť aj akýkoľvek iný súbor údajov.



Príklad 1: OBJEDNAŤ PODĽA

Najzákladnejšou a najjednoduchšou metódou, ktorú môžeme použiť na získanie najnovšieho záznamu podľa dátumu, je použitie klauzuly SQL ORDER BY.



Záznamy môžeme usporiadať v zostupnom poradí na základe hodnoty dátumu a potom obmedziť výsledok len na jeden riadok.





Vezmite si napríklad tabuľku prenájmu zo vzorovej databázy Sakila. Obsahuje stĺpec „dátum_požičovne“, ktorý označuje dátum, kedy bol film vypožičaný.

Môžeme to použiť na demonštráciu toho, ako použiť klauzulu ORDER BY na získanie najnovšieho záznamu z tabuľky.



VYBRAŤ *

Z prenájmu

OBJEDNAŤ BY dátum_nájmu DESC

LIMIT 1 ;

V tomto prípade použijeme klauzulu ORDER BY a ako cieľový stĺpec odovzdáme „dátum_nájmu“. Zabezpečujeme tiež, aby sme databáze povedali, aby zoradila záznamy v zostupnom poradí.

Nakoniec tiež obmedzíme počet výstupných záznamov, ktoré by mali vrátiť najnovší riadok z tabuľky.

Príklad 2: Použitie funkcie Max().

Vedeli ste, že na hodnoty dátumu môžeme použiť funkciu max()? Áno, na získanie najnovšieho záznamu z danej tabuľky môžeme použiť jednoduchý poddotaz SQL a funkciu max() na hodnoty dátumu.

Zvážte nasledujúci príklad:

VYBRAŤ *

Z prenájmu

WHERE dátum_nájmu = (SELECT MAX(dátum_nájmu) FROM výpožičky);

Pomocou poddotazu nájde z tabuľky maximálny dátum prenájmu. V hlavnom dotaze by sme mali načítať záznamy s „dátum_nájmu“ rovným maximálnemu dátumu.

Príklad 3: Funkcie okien

Pre databázy, ktoré podporujú funkcie okna, môžeme použiť poddotaz a funkciu row_number() na získanie najnovšieho záznamu z tabuľky takto:

VYBRAŤ *

OD (

VYBERTE *,

ROW_NUMBER() VIAC ( OBJEDNAŤ PODĽA dátumu_nájmu DESC) AS rn

Z prenájmu

) AS poddotaz

KDE rn = 1 ;

V uvedenom príklade poddotaz priradí číslo riadku každému riadku na základe stĺpca „dátum_nájmu“ v zostupnom poradí pomocou funkcie okna ROW_NUMBER().

Vonkajší dotaz potom vyberie všetky stĺpce z poddotazu, kde je číslo riadku 1, čím sa efektívne vyberú najnovšie záznamy o prenájme.

Záver

V tomto príspevku sme preskúmali rôzne metódy a techniky, ktoré môžeme použiť na získanie najnovšieho záznamu na základe dátumu.