Изаберите најновији запис по датуму у СКЛ-у

Izaberite Najnoviji Zapis Po Datumu U Skl U



Када радите у СКЛ бази података, можда ћете наићи на инстанцу у којој морате да преузмете најновији запис из дате табеле на основу датума. Ово може бити за пагинацију, управљање залихама, праћење, итд.

У овом водичу ћемо вас провести кроз различите методе и технике које можемо користити за одабир најновијег записа из табеле на основу датума.

Примјера података

У сврху демонстрације користимо Сакила узорак базе података која је доступна за МиСКЛ и ПостгреСКЛ укусе.







Слободно преузмите и увезите узорак базе података на свој сервер. Такође можете користити било који други скуп података према потреби.



Пример 1: ОРДЕР БИ

Најосновнији и најједноставнији метод који можемо да користимо за преузимање најновијег записа по датуму је коришћење СКЛ ОРДЕР БИ клаузуле.



Можемо поређати записе у опадајућем редоследу на основу вредности датума, а затим ограничити резултат на само један ред.





Узмимо на пример табелу за изнајмљивање из Сакила узорка базе података. Садржи колону „рентал_дате“ која означава датум када је филм изнајмљен.

Ово можемо користити да покажемо како да користимо ОРДЕР БИ клаузулу за преузимање најновијег записа из табеле.



СЕЛЕЦТ *

ОД изнајмљивања

ОРДЕР ПО рентал_дате ДЕСЦ

ЛИМИТ 1 ;

У овом случају користимо клаузулу ОРДЕР БИ и прослеђујемо „рентал_дате“ као циљну колону. Такође обезбеђујемо да кажемо бази података да поређа записе у опадајућем редоследу.

Коначно, такође ограничавамо број излазних записа који треба да врате последњи ред из табеле.

Пример 2: Коришћење функције Мак().

Да ли сте знали да можемо да користимо функцију мак() за вредности датума? Да, можемо да користимо једноставан СКЛ подупит и функцију мак() на вредностима датума да бисмо преузели најновији запис из дате табеле.

Размотрите следећи пример:

СЕЛЕЦТ *

ОД изнајмљивања

ВХЕРЕ рентал_дате = (СЕЛЕЦТ МАКС(рентал_дате) ФРОМ рентал);

Коришћењем потупита проналази се максимални датум изнајмљивања из табеле. У главном упиту, требало би да преузмемо записе са „рентал_дате“ једнаким максималном датуму.

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

За базе података које подржавају функције прозора, можемо користити функцију потупита и ров_нумбер() да бисмо преузели најновији запис из табеле на следећи начин:

СЕЛЕЦТ *

ИЗ (

СЕЛЕЦТ *,

РОВ_НУМБЕР() ПРЕКО ( ОРДЕР БИ рентал_дате ДЕСЦ) АС рн

ОД изнајмљивања

) АС потупит

ВХЕРЕ рн = 1 ;

У датом примеру, потупит додељује број реда сваком реду на основу колоне „рентал_дате“ у опадајућем редоследу помоћу функције прозора РОВ_НУМБЕР().

Спољни упит затим бира све колоне из потупита где је број реда 1, ефективно бирајући најновији запис(е) о изнајмљивању.

Закључак

У овом посту смо истражили различите методе и технике које можемо користити за преузимање најновијег записа на основу датума.