Souhrn: v tomto kurzu se naučíte, jak používat SQL PARTITION BY
pro změnu způsobu výpočtu funkce okna.
Přehled klauzule SQL PARTITION BY
Klauzule PARTITION BY
je dílčí klauzule klauzule OVER
. Klauzule PARTITION BY
rozděluje sadu výsledků dotazu na oddíly. Funkce okna je provozována na každém oddílu zvlášť a přepočítává se pro každý oddíl.
Následující text ukazuje syntaxi klauzule PARTITION BY
:
Můžete rozdělit sadu výsledků tak, že zadáte jeden nebo více sloupců nebo výrazů. expression1
, expression1
atd., Může odkazovat pouze na sloupce odvozené z FROM
klauzule. Nemohou odkazovat na výrazy nebo aliasy ve výběrovém seznamu.
Výrazy klauzule PARTITION BY
mohou být výrazy sloupců, skalární poddotaz nebo skalární funkce. Všimněte si, že skalární poddotaz a skalární funkce vždy vrátí jednu hodnotu.
Pokud vynecháte klauzuli PARTITION BY
, celá sada výsledků bude považována za jediný oddíl.
PARTITION BY vs. GROUP BY
Klauzule GROUP BY
se používá často ve spojení s agregační funkcí, jako je SUM()
a AVG()
. Klauzule GROUP BY
snižuje počet vrácených řádků jejich součtem a výpočtem součtů nebo průměrů pro každou skupinu.
Například následující příkaz vrátí průměr plat zaměstnanců podle oddělení:
Následující obrázek ukazuje výsledek:
Klauzule PARTITION BY
rozděluje sadu výsledků na oddíly a mění způsob výpočtu funkce okna. Klauzule PARTITION BY
nesnižuje počet vrácených řádků.
Následující příkaz vrátí plat zaměstnance a také průměrný plat zaměstnaneckého oddělení:
Zde je částečný výstup:
Jednoduše řečeno, klauzule GROUP BY
je agregovaná, klauzule PARTITION BY
je analytická.
V tomto tutoriál, dozvěděli jste se o klauzuli SQL PARTITION BY
, která mění způsob výpočtu výsledku funkce okna.
- Byl tento výukový program užitečný?
- AnoNe