Piliin ang Pinakabagong Record ayon sa Petsa sa SQL

Piliin Ang Pinakabagong Record Ayon Sa Petsa Sa Sql



Kapag nagtatrabaho sa isang database ng SQL, maaari kang makatagpo ng isang pagkakataon kung saan kailangan mong kunin ang pinakahuling talaan sa isang ibinigay na talahanayan batay sa petsa. Ito ay maaaring para sa pagination, pamamahala ng imbentaryo, mga layunin ng pagsubaybay, atbp.

Sa gabay na ito, gagabayan ka namin sa iba't ibang pamamaraan at diskarte na magagamit namin upang piliin ang pinakabagong tala mula sa isang talahanayan batay sa petsa.

Sample na data

Para sa mga layunin ng pagpapakita, ginagamit namin ang sample na database ng Sakila na magagamit para sa mga lasa ng MySQL at PostgreSQL.







Huwag mag-atubiling i-download at i-import ang sample na database sa iyong server. Maaari mo ring gamitin ang anumang iba pang dataset kung naaangkop.



Halimbawa 1: ORDER BY

Ang pinaka-basic at pinakasimpleng paraan na magagamit namin upang makuha ang pinakabagong tala ayon sa petsa ay ang paggamit ng SQL ORDER BY clause.



Maaari naming i-order ang mga tala sa isang pababang pagkakasunud-sunod batay sa halaga ng petsa at pagkatapos ay limitahan ang resulta sa isang row lang.





Kunin halimbawa ang talahanayan ng pagrenta mula sa sample na database ng Sakila. Naglalaman ito ng column na 'rental_date' na nagsasaad ng petsa kung kailan nirentahan ang isang pelikula.

Magagamit namin ito upang ipakita kung paano gamitin ang ORDER BY clause upang makuha ang pinakabagong tala mula sa talahanayan.



SELECT *

MULA sa pag-upa

ORDER BY rental_date DESC

LIMIT 1 ;

Sa kasong ito, ginagamit namin ang ORDER BY clause at ipinapasa ang 'rental_date' bilang target na column. Tinitiyak din namin na sasabihin sa database na i-order ang mga tala sa pababang pagkakasunud-sunod.

Sa wakas, nililimitahan din namin ang bilang ng mga talaan ng output na dapat ibalik ang pinakabagong hilera mula sa talahanayan.

Halimbawa 2: Paggamit ng Max() Function

Alam mo ba na maaari naming gamitin ang max() function sa mga halaga ng petsa? Oo, maaari kaming gumamit ng isang simpleng SQL subquery at ang max() function sa mga halaga ng petsa upang makuha ang pinakabagong tala mula sa isang ibinigay na talahanayan.

Isaalang-alang ang sumusunod na halimbawa:

SELECT *

MULA sa pag-upa

WHERE rental_date = (PUMILI NG MAX(rental_date) MULA sa rental);

Ang paggamit ng subquery ay nahahanap ang maximum na petsa ng pagrenta mula sa talahanayan. Sa pangunahing query, dapat nating kunin ang mga talaan na may 'rental_date' na katumbas ng maximum na petsa.

Halimbawa 3: Mga Pag-andar ng Window

Para sa mga database na sumusuporta sa mga function ng window, maaari kaming gumamit ng subquery at row_number() function upang makuha ang pinakabagong tala mula sa talahanayan tulad ng sumusunod:

SELECT *

MULA sa (

SELECT *,

ROW_NUMBER() OVER ( ORDER BY rental_date DESC) AS rn

MULA sa pag-upa

) BILANG subquery

SAAN rn = 1 ;

Sa ibinigay na halimbawa, ang subquery ay nagtatalaga ng row number sa bawat row batay sa column na “rental_date” sa pababang pagkakasunod-sunod gamit ang ROW_NUMBER() window function.

Pinipili ng panlabas na query ang lahat ng column mula sa subquery kung saan ang row number ay 1, na epektibong pinipili ang pinakabagong (mga) record ng rental.

Konklusyon

Sa post na ito, ginalugad namin ang iba't ibang mga pamamaraan at diskarte na magagamit namin upang makuha ang pinakabagong record batay sa isang petsa.