Sdílet prostřednictvím


Přehled funkcí okna

Funkce oken pracují s více řádky (záznamy) v řádku nastaveném najednou. Na rozdíl od agregačních funkcí funkce oken vyžadují, aby řádky v sadě řádků byly serializovány (mají pro ně specifické pořadí). Funkce oken můžou při určování výsledku záviset na pořadí.

Funkce oken lze použít pouze u serializovaných sad. Nejjednodušší způsob, jak serializovat sadu řádků, je použít operátor serializace. Tento operátor "zablokuje" pořadí řádků libovolným způsobem. Pokud je pořadí serializovaných řádků sémanticky důležité, použijte operátor řazení k vynucení konkrétního pořadí.

Proces serializace má netriviální náklady spojené s ním. Může například zabránit paralelismu dotazů v mnoha scénářích. Proto nepoužívejte serializaci zbytečně. V případě potřeby přeuspořádejte dotaz tak, aby prováděl serializaci na nejmenší možné sadě řádků.

Sada serializovaných řádků

Libovolná sada řádků (například tabulka nebo výstup tabulkového operátoru) lze serializovat jedním z následujících způsobů:

  1. Seřazením sady řádků. Níže najdete seznam operátorů, které generují seřazené sady řádků.
  2. Pomocí operátoru serializace.

Mnoho tabulkových operátorů serializuje výstup vždy, když je vstup již serializován, i když operátor sám nezaručuje, že je výsledek serializován. Tato vlastnost je například zaručena pro operátor extend, operátor projektu a operátor where.

Operátory, které generují serializované sady řádků řazením

Operátory, které zachovávají serializovanou vlastnost sady řádků