Valitse viimeisin tietue päivämäärän mukaan SQL:ssä

Valitse Viimeisin Tietue Paivamaaran Mukaan Sql Ssa



Kun työskentelet SQL-tietokannassa, saatat törmätä tapaukseen, jossa sinun on noudettava viimeisin tietue tietystä taulukosta päivämäärän perusteella. Tämä voi olla sivutusta, varastonhallintaa, seurantaa jne.

Tässä oppaassa opastamme sinua eri menetelmien ja tekniikoiden avulla, joiden avulla voimme valita viimeisimmän tietueen taulukosta päivämäärän perusteella.

Esimerkkitiedot

Esittelytarkoituksiin käytämme Sakila-näytetietokantaa, joka on saatavilla MySQL- ja PostgreSQL-makuille.







Voit vapaasti ladata ja tuoda näytetietokannan palvelimellesi. Voit myös käyttää mitä tahansa muuta tietojoukkoa tarpeen mukaan.



Esimerkki 1: TILAUS

Yksinkertaisin ja yksinkertaisin tapa, jolla voimme hakea viimeisimmän tietueen päivämäärän mukaan, on käyttää SQL ORDER BY -lausetta.



Voimme järjestää tietueet laskevassa järjestyksessä päivämäärän arvon perusteella ja sitten rajata tuloksen vain yhteen riviin.





Otetaan esimerkiksi vuokrapöytä Sakilan näytetietokannasta. Se sisältää 'rental_date' -sarakkeen, joka ilmaisee päivämäärän, jolloin elokuva on vuokrattu.

Voimme käyttää tätä osoittamaan, kuinka ORDER BY -lausetta käytetään viimeisimmän tietueen hakemiseen taulukosta.



VALITSE *

vuokrauksesta

TILAUS Vuokrauspäivämäärän mukaan DESC

RAJA 1 ;

Tässä tapauksessa käytämme ORDER BY -lausetta ja välitämme kohdesarakkeena 'vuokrapäivämäärän'. Varmistamme myös, että kehotamme tietokantaa järjestämään tietueet laskevassa järjestyksessä.

Lopuksi rajoitamme myös tulostietueiden määrää, joiden pitäisi palauttaa taulukon viimeisin rivi.

Esimerkki 2: Max()-funktion käyttö

Tiesitkö, että voimme käyttää max()-funktiota päivämääräarvoissa? Kyllä, voimme käyttää yksinkertaista SQL-alikyselyä ja max()-funktiota päivämääräarvoissa viimeisimmän tietueen hakemiseen tietystä taulukosta.

Harkitse seuraavaa esimerkkiä:

VALITSE *

vuokrauksesta

WHERE vuokra_pvm = (VALITSE MAKSIMI(vuokra_pvm) vuokrauksesta);

Alakyselyn avulla löydät taulukosta enimmäisvuokrapäivämäärän. Pääkyselyssä meidän pitäisi hakea tietueet, joiden 'vuokrapäivämäärä' on yhtä suuri kuin enimmäispäivämäärä.

Esimerkki 3: Ikkunatoiminnot

Ikkunatoimintoja tukevissa tietokannoissa voimme käyttää alikyselyä ja row_number()-funktiota uusimman tietueen hakemiseen taulukosta seuraavasti:

VALITSE *

FROM (

VALITSE *,

ROW_NUMBER() YLI ( TILAUS BY rental_date DESC) AS rn

vuokrauksesta

) AS-alikysely

MISSÄ rn = 1 ;

Annetussa esimerkissä alikysely määrittää kullekin riville rivinumeron 'vuokrapäivämäärä'-sarakkeen perusteella laskevassa järjestyksessä ROW_NUMBER()-ikkunafunktion avulla.

Ulompi kysely valitsee sitten kaikki sarakkeet alikyselystä, jossa rivinumero on 1, ja valitsee käytännössä uusimmat vuokratietueet.

Johtopäätös

Tässä viestissä tutkimme erilaisia ​​menetelmiä ja tekniikoita, joita voimme käyttää viimeisimmän tietueen hakemiseen päivämäärän perusteella.