Изберете най-новия запис по дата в SQL

Izberete Naj Novia Zapis Po Data V Sql



Когато работите в SQL база данни, може да попаднете на случай, в който трябва да извлечете най-новия запис от дадена таблица въз основа на датата. Това може да бъде за пагиниране, управление на инвентара, мониторинг и т.н.

В това ръководство ще ви преведем през различните методи и техники, които можем да използваме, за да изберем най-новия запис от таблица въз основа на датата.

Примерни данни

За демонстрационни цели използваме примерната база данни на Sakila, която е налична за разновидности MySQL и PostgreSQL.







Чувствайте се свободни да изтеглите и импортирате примерната база данни на вашия сървър. Можете също да използвате всеки друг набор от данни, ако е подходящо.



Пример 1: ПОРЪЧАЙТЕ ПО

Най-основният и прост метод, който можем да използваме, за да извлечем най-новия запис по дата, е да използваме клауза SQL ORDER BY.



Можем да подредим записите в низходящ ред въз основа на стойността на датата и след това да ограничим резултата само до един ред.





Вземете например таблицата за наем от примерната база данни на Sakila. Той съдържа колоната „rental_date“, която обозначава датата, на която даден филм е бил нает.

Можем да използваме това, за да демонстрираме как да използваме клаузата ORDER BY, за да извлечем най-новия запис от таблицата.



ИЗБЕРЕТЕ *

ОТ наем

ПОРЪЧКА ПО rental_date DESC

ОГРАНИЧЕНИЕ 1 ;

В този случай използваме клаузата ORDER BY и предаваме „rental_date“ като целева колона. Ние също така гарантираме да кажем на базата данни да подреди записите в низходящ ред.

И накрая, ние също ограничаваме броя на изходните записи, които трябва да върнат най-новия ред от таблицата.

Пример 2: Използване на функцията Max().

Знаете ли, че можем да използваме функцията max() за стойности на дата? Да, можем да използваме проста SQL подзаявка и функцията max() за стойности на дата, за да извлечем най-новия запис от дадена таблица.

Разгледайте следния пример:

ИЗБЕРЕТЕ *

ОТ наем

WHERE rental_date = (SELECT MAX(rental_date) FROM rental);

Използването на подзаявката намира максималната дата за наемане от таблицата. В основната заявка трябва да извлечем записите с „rental_date“, равна на максималната дата.

Пример 3: Функции за прозорец

За бази данни, които поддържат прозоречните функции, можем да използваме подзаявка и функция row_number(), за да извлечем най-новия запис от таблицата, както следва:

ИЗБЕРЕТЕ *

ОТ (

ИЗБЕРЕТЕ *,

ROW_NUMBER() НАД ( ПОРЪЧКА BY rental_date DESC) AS rn

ОТ наем

) AS подзаявка

КЪДЕ rn = 1 ;

В дадения пример подзаявката присвоява номер на ред на всеки ред въз основа на колоната „rental_date“ в низходящ ред с помощта на прозоречната функция ROW_NUMBER().

След това външната заявка избира всички колони от подзаявката, където номерът на реда е 1, ефективно избирайки най-скорошния(ите) запис(и) за наем.

Заключение

В тази публикация проучихме различните методи и техники, които можем да използваме, за да извлечем най-новия запис въз основа на дата.