Middle
Na čo sa používajú okienkové funkcie v SQL?
sobes.tech AI
Odpoveď od AI
Okienkové funkcie v SQL vykonávajú agregáciu dát v súbore riadkov spojených s aktuálnym riadkom, ale nezhlukujú výsledný súbor. To umožňuje vykonávať výpočty ako kumulatívne súčty, pohyblivé priemery alebo rebríčky, pričom zachovávajú všetky riadky pôvodného dotazu.
Hlavné ciele používania okienkových funkcií:
- Rebríček: Priradenie rebríčka každej riadku v určitej okne.
-- Získanie rebríčka zamestnancov podľa platu v rámci každého oddelenia SELECT employee_name, salary, department, RANK() OVER (PARTITION BY department ORDER BY salary DESC) as department_rank FROM employees; - Výpočet štatistík podľa skupín riadkov bez zoskupovania: Agregácia dát v rámci "okna" riadkov, pričom sa zachováva podrobnosť na úrovni riadku.
-- Výpočet priemerného platu pre celé oddelenie pre každý riadok SELECT employee_name, salary, department, AVG(salary) OVER (PARTITION BY department) as avg_department_salary FROM employees; - Porovnanie aktuálneho riadku s inými riadkami v okne: Prístup k dátam z predchádzajúcich alebo nasledujúcich riadkov v okne.
-- Získanie platu predchádzajúceho zamestnanca v oddelení v zostupnom poradí podľa 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 kumulatívnym súčtom: Výpočet súčtov, priemerov a iných agregácií v rastúcom kumulatívnom poradí.
-- Výpočet kumulatívneho súčtu predajov podľa dátumu SELECT sale_date, amount, SUM(amount) OVER (ORDER BY sale_date) as cumulative_sales FROM sales;
Na rozdiel od bežných agregačných funkcií (GROUP BY), okienkové funkcie nespojujú riadky, čo ich robí mocným nástrojom pre analytické dotazy a podrobnú analýzu dát.