Vyberte poslední záznam podle data v SQL

Vyberte Posledni Zaznam Podle Data V Sql



Při práci v databázi SQL můžete narazit na případ, kdy potřebujete načíst nejnovější záznam z dané tabulky na základě data. To může být pro účely stránkování, správy zásob, monitorování atd.

V této příručce vás provedeme různými metodami a technikami, které můžeme použít k výběru nejnovějšího záznamu z tabulky na základě data.

Vzorek dat

Pro demonstrační účely používáme ukázkovou databázi Sakila, která je k dispozici pro varianty MySQL a PostgreSQL.







Neváhejte si stáhnout a importovat ukázkovou databázi na váš server. Podle potřeby můžete také použít jakoukoli jinou datovou sadu.



Příklad 1: OBJEDNAT PODLE

Nejzákladnější a nejjednodušší metodou, kterou můžeme použít k načtení nejnovějšího záznamu podle data, je použití klauzule SQL ORDER BY.



Záznamy můžeme seřadit v sestupném pořadí na základě hodnoty data a pak omezit výsledek pouze na jeden řádek.





Vezměte si například tabulku pronájmu ze vzorové databáze Sakila. Obsahuje sloupec „datum_pronájmu“, který označuje datum, kdy byl film vypůjčen.

Můžeme to použít k demonstraci použití klauzule ORDER BY k načtení nejnovějšího záznamu z tabulky.



VYBRAT *

Z půjčovny

OBJEDNAT BY rental_date DESC

OMEZIT 1 ;

V tomto případě použijeme klauzuli ORDER BY a předáme „datum_nájmu“ jako cílový sloupec. Zajistíme také, že sdělíme databázi, aby seřadila záznamy v sestupném pořadí.

Nakonec také omezíme počet výstupních záznamů, které by měly vrátit nejnovější řádek z tabulky.

Příklad 2: Použití funkce Max().

Věděli jste, že na hodnoty data můžeme použít funkci max()? Ano, můžeme použít jednoduchý poddotaz SQL a funkci max() na hodnoty data k načtení nejnovějšího záznamu z dané tabulky.

Zvažte následující příklad:

VYBRAT *

Z půjčovny

WHERE datum_pronajmu = (SELECT MAX(datum_pronajmu) FROM vypůjčení);

Pomocí dílčího dotazu se z tabulky zjistí maximální datum pronájmu. V hlavním dotazu bychom měli načíst záznamy s „datum_nájmu“ rovným maximálnímu datu.

Příklad 3: Funkce okna

U databází, které podporují funkce okna, můžeme použít poddotaz a funkci row_number() k načtení nejnovějšího záznamu z tabulky následovně:

VYBRAT *

Z (

VYBERTE *,

ŘÁDEK_NUMBER() PŘES ( OBJEDNAT BY pronájem_datum DESC) AS rn

Z půjčovny

) AS dílčí dotaz

KDE rn = 1 ;

V daném příkladu dílčí dotaz přiřadí každému řádku číslo řádku na základě sloupce „datum_nájmu“ v sestupném pořadí pomocí funkce okna ROW_NUMBER().

Vnější dotaz pak vybere všechny sloupce z poddotazu, kde je číslo řádku 1, a efektivně vybere nejnovější záznam(y) pronájmu.

Závěr

V tomto příspěvku jsme prozkoumali různé metody a techniky, které můžeme použít k načtení nejnovějšího záznamu na základě data.