Wybierz najnowszy rekord według daty w SQL

Wybierz Najnowszy Rekord Wedlug Daty W Sql



Pracując w bazie danych SQL, możesz spotkać się z sytuacją, w której będziesz musiał pobrać najnowszy rekord z danej tabeli na podstawie daty. Może to służyć do paginacji, zarządzania zapasami, celów monitorowania itp.

W tym przewodniku przeprowadzimy Cię przez różne metody i techniki, których możemy użyć do wybrania najnowszego rekordu z tabeli na podstawie daty.

Przykładowe dane

W celach demonstracyjnych korzystamy z przykładowej bazy danych Sakila, która jest dostępna dla wersji MySQL i PostgreSQL.







Zachęcamy do pobrania i zaimportowania przykładowej bazy danych na swój serwer. W razie potrzeby możesz także użyć dowolnego innego zestawu danych.



Przykład 1: ZAMÓW PRZEZ

Najbardziej podstawową i najprostszą metodą, której możemy użyć do pobrania najnowszego rekordu według daty, jest użycie klauzuli SQL ORDER BY.



Możemy uporządkować rekordy w kolejności malejącej na podstawie wartości daty, a następnie ograniczyć wynik do tylko jednego wiersza.





Weźmy na przykład tabelę wynajmu z przykładowej bazy danych Sakila. Zawiera kolumnę „data_wypożyczenia”, która oznacza datę wypożyczenia filmu.

Możemy to wykorzystać, aby zademonstrować, jak używać klauzuli ORDER BY do pobierania najnowszego rekordu z tabeli.



WYBIERAĆ *

Z wynajmu

ZAMÓWIENIE BY data_wypożyczenia DESC

LIMIT 1 ;

W tym przypadku używamy klauzuli ORDER BY i jako kolumnę docelową przekazujemy „data_wypożyczenia”. Zapewniamy również, że poinformujemy bazę danych, aby uporządkowała rekordy w kolejności malejącej.

Na koniec ograniczamy także liczbę rekordów wyjściowych, które powinny zwrócić najnowszy wiersz z tabeli.

Przykład 2: Użycie funkcji Max().

Czy wiesz, że możemy używać funkcji max() na wartościach dat? Tak, możemy użyć prostego podzapytania SQL i funkcji max() na wartościach dat, aby pobrać najnowszy rekord z danej tabeli.

Rozważ następujący przykład:

WYBIERAĆ *

Z wynajmu

GDZIE data_wypożyczenia = (WYBIERZ MAX(data_wypożyczenia) Z wypożyczenia);

Użycie podzapytania pozwala znaleźć maksymalny termin wynajmu z tabeli. W zapytaniu głównym powinniśmy pobrać rekordy z datą „rental_date” równą dacie maksymalnej.

Przykład 3: Funkcje okna

W przypadku baz danych obsługujących funkcje okna możemy użyć podzapytania i funkcji row_number() w celu pobrania najnowszego rekordu z tabeli w następujący sposób:

WYBIERAĆ *

Z (

WYBIERAĆ *,

ROW_NUMBER() PONAD ( ZAMÓWIENIE BY data_wypożyczenia DESC) AS rn

Z wynajmu

) Podzapytanie AS

GDZIE rn = 1 ;

W podanym przykładzie podzapytanie przypisuje numer wiersza do każdego wiersza na podstawie kolumny „data_wypożyczenia” w kolejności malejącej przy użyciu funkcji okienkowej ROW_NUMBER().

Następnie zewnętrzne zapytanie wybiera wszystkie kolumny z podzapytania, w którym numer wiersza wynosi 1, skutecznie wybierając najnowszy(e) rekord(y) wypożyczenia.

Wniosek

W tym poście omówiliśmy różne metody i techniki, których możemy użyć do pobrania najnowszego rekordu na podstawie daty.