Middle
Jak rozdělit data do skupin pomocí okenních funkcí v SQL?
sobes.tech AI
Odpověď od AI
Funkce okna v SQL umožňují provádět výpočty nad skupinami řádků, aniž by výsledek zjednodušily na jeden řádek, jako při použití GROUP BY. Pracují s množinou řádků (oknem), která je definována pro každý řádek.
Pro rozdělení dat do skupin a použití funkcí okna se používá konstrukce OVER (PARTITION BY ...). Například:
SELECT
employee_id,
department_id,
salary,
RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS salary_rank
FROM employees;
Zde jsou data rozdělena do skupin podle department_id, a uvnitř každé skupiny je vypočítán žebříček platů.
Tímto způsobem funkce okna umožňují analyzovat data podle skupin, přičemž si zachovávají všechny řádky původní tabulky.