Funkce SQL Server Last_Value().

Funkce Sql Server Last Value



Tento výukový program vás povede k pochopení funkce last_value() na serveru SQL Server. Funkce umožňuje načíst poslední hodnotu v uspořádané sadě hodnot nebo oddílu.

Syntaxe funkce

Níže je syntaxe funkce last_value.

LAST_VALUE ( [ skalární_výraz ] )  [ IGNORE NULLS | RESPEKTUJTE NULOVÉ ]
OVER ( [ partition_by_clause ] order_by_clause [ rows_range_clause ] )

Argumenty funkce jsou:







  1. skalární_výraz – definuje hodnotu, která má být vrácena. Může to být existující sloupec, poddotaz nebo výraz, který se vrací na jednu hodnotu.
  2. IGNORE NULLS – umožňuje funkci ignorovat nulové hodnoty v dané sadě při určování poslední hodnoty přes oddíl
  3. RESPECT NULL – jedná se o opak klauzule IGNORE NULL. Vynutí funkci, aby při určování poslední hodnoty v oddílu vzala v úvahu hodnoty NULL.
  4. ROZDĚLENÍ PODLE – rozdělí řádky daného výsledku do různých oddílů. Na tyto oddíly se pak použije funkce last_value. Pokud klauzule partition_by chybí, bude funkce považovat sadu výsledků za jednu skupinu.
  5. ORDER BY – určuje, v jakém pořadí následují řádky v daném oddílu.
  6. Rozsah_řádků – tato klauzule omezuje počet řádků v daném oddílu. Funguje to nastavením počáteční a koncové hodnoty.

Funkce vrací typ zadaného skalárního_výrazu.



Použití funkce last_value přes sadu výsledků

Předpokládejme, že máme tabulku jako na obrázku:







Na sadu výsledků můžeme použít funkci last_value(), jak je ukázáno v příkladu dotazu níže:

vybrat
SERVER_NAME,
ADRESA SERVERU ,
COMPRESSION_METHOD,
SIZE_ON_DISK,
last_value(size_on_disk) over(
pořadí podle size_on_disk rozsah mezi neomezeným předchozím a neomezeným následujícím) největší
z
VSTUPY E;

Výsledné hodnoty:



Použití funkce last_value přes oddíl

Můžeme také použít funkci last_value() na oddíl, jak je znázorněno v příkladu níže:

vybrat
SERVER_NAME,
ADRESA SERVERU ,
COMPRESSION_METHOD,
SIZE_ON_DISK,
last_value(size_on_disk) over(partition by COMPRESSION_METHOD
pořadí podle size_on_disk rozsah mezi neomezeným předchozím a neomezeným následujícím) největší
z
VSTUPY E;

V tomto případě jsou data seskupena do různých oddílů na základě metody komprese.

Výsledná hodnota je následující:

Ve výše uvedené tabulce máme pět oddílů, přičemž maximální hodnota každého oddílu je zobrazena v největším sloupci.

Závěr

V tomto kurzu jste se naučili, jak používat funkci SQL Server last_value() k získání poslední hodnoty v uspořádané sadě nebo oddílu.