Middle
K čemu slouží okénkové funkce v SQL?
sobes.tech AI
Odpověď od AI
Okénkové funkce v SQL provádějí agregaci dat v sadě řádků souvisejících s aktuálním řádkem, ale neseskupují výsledkovou sadu. To umožňuje provádět výpočty, jako jsou kumulativní součty, klouzavé průměry nebo žebříčky, přičemž zachovávají všechny řádky původního dotazu.
Hlavní cíle použití okénkových funkcí:
- Žebříček: Přiřazení žebříčku každému řádku v určitém okně.
-- Získání žebříčku zaměstnanců podle platu v rámci každého oddělení SELECT employee_name, salary, department, RANK() OVER (PARTITION BY department ORDER BY salary DESC) as department_rank FROM employees; - Výpočet statistik podle skupiny řádků bez seskupování: Agregace dat uvnitř "okna" řádků, přičemž se zachovává detailnost na úrovni řádku.
-- Výpočet průměrného platu pro celé oddělení pro každý řádek SELECT employee_name, salary, department, AVG(salary) OVER (PARTITION BY department) as avg_department_salary FROM employees; - Porovnání aktuálního řádku s jinými řádky v okně: Přístup k datům z předchozích nebo následujících řádků v okně.
-- Získání platu předchozího zaměstnance v oddělení v sestupném pořadí podle platu SELECT employee_name, salary, department, LAG(salary, 1, 0) OVER (PARTITION BY department ORDER BY salary DESC) as previous_salary FROM employees; - Výpočty s kumulativní sumou: Výpočet součtů, průměrů a dalších agregací v narůstající kumulaci.
-- Výpočet kumulativního součtu prodeje podle data SELECT sale_date, amount, SUM(amount) OVER (ORDER BY sale_date) as cumulative_sales FROM sales;
Na rozdíl od běžných agregačních funkcí (GROUP BY), okénkové funkce neslučují řádky, což je činí mocným nástrojem pro analytické dotazy a podrobnou analýzu dat.