Funkcia SQL Server Last_Value().

Funkcia Sql Server Last Value



Cieľom tohto tutoriálu je pomôcť vám pochopiť funkciu last_value() na serveri SQL Server. Táto funkcia vám umožňuje získať poslednú hodnotu v usporiadanej množine hodnôt alebo oddielu.

Syntax funkcie

Nižšie je syntax funkcie last_value.

LAST_VALUE ( [ skalárny_výraz ] )  [ IGNORE NULLS | REŠPEKTOVAŤ NULOVÉ ]
OVER ( [ partition_by_clause ] order_by_clause [ rows_range_clause ] )

Argumenty funkcie sú:







  1. skalárny_výraz – definuje hodnotu, ktorá sa má vrátiť. Môže to byť existujúci stĺpec, poddotaz alebo výraz, ktorý sa vráti na jednu hodnotu.
  2. IGNORE NULLS – umožňuje funkcii ignorovať nulové hodnoty v danej množine pri určovaní poslednej hodnoty na partícii
  3. RESPECT NULL – ide o opak klauzuly IGNORE NULL. Núti funkciu, aby pri určovaní poslednej hodnoty na oddiele zohľadňovala hodnoty NULL.
  4. ROZDELENIE PODĽA – rozdelí riadky daného výsledku na rôzne partície. Na tieto oddiely sa potom použije funkcia last_value. Ak klauzula partition_by chýba, funkcia bude považovať množinu výsledkov za jednu skupinu.
  5. ORDER BY – určuje, v akom poradí nasledujú riadky v danej partícii.
  6. Rozsah_riadkov – táto klauzula obmedzuje počet riadkov v danom oddiele. Funguje to nastavením počiatočnej a koncovej hodnoty.

Funkcia vráti typ zadaného skalárneho_výrazu.



Použitie funkcie last_value nad množinou výsledkov

Predpokladajme, že máme tabuľku, ako je znázornená:







Na množinu výsledkov môžeme použiť funkciu last_value(), ako je znázornené v príklade dotazu nižšie:

vyberte
NÁZOV SERVERA,
ADRESA SERVERA ,
COMPRESSION_METHOD,
SIZE_ON_DISK,
last_value(size_on_disk) over(
poradie podľa size_on_disk rozsah medzi neohraničeným predchádzajúcim a neohraničeným nasledujúcim) najväčší
od
VSTUPY E;

Výsledné hodnoty:



Použitie funkcie last_value nad oddielom

Môžeme tiež použiť funkciu last_value() na oddiel, ako je uvedené v príklade nižšie:

vyberte
NÁZOV SERVERA,
ADRESA SERVERA ,
COMPRESSION_METHOD,
SIZE_ON_DISK,
last_value(size_on_disk) over (partition by COMPRESSION_METHOD
poradie podľa size_on_disk rozsah medzi neohraničeným predchádzajúcim a neohraničeným nasledujúcim) najväčší
od
VSTUPY E;

V tomto prípade sú údaje zoskupené do rôznych oddielov na základe metódy kompresie.

Výsledná hodnota je takáto:

Vo vyššie uvedenej tabuľke máme päť oblastí, pričom maximálna hodnota každej oblasti je zobrazená v najväčšom stĺpci.

Záver

V tomto návode ste sa naučili, ako používať funkciu SQL Server last_value() na získanie poslednej hodnoty v usporiadanej sade alebo oddiele.