Sobes.tech
Middle

V čom sa líšia okienkové funkcie od GROUP BY?

sobes.tech AI

Odpoveď od AI

Funkcie okien a GROUP BY v SQL slúžia na rôzne účely, hoci obe pracujú s agregovanými údajmi.

GROUP BY spája riadky podľa uvedených stĺpcov a vracia jeden riadok pre každú skupinu. Môžu sa použiť agregačné funkcie (SUM, COUNT atď.), ale výsledok sa zredukuje na jeden riadok na skupinu.

Funkcie okien vypočítavajú agregáty alebo iné výpočty nad súborom riadkov nazývaným okno, bez znižovania počtu vracaných riadkov. Každý riadok sa zachová, ale k nemu sa pridá výsledok funkcie vypočítanej nad oknom.

Príklad:

SELECT
  employee_id,
  department_id,
  salary,
  AVG(salary) OVER (PARTITION BY department_id) AS avg_dept_salary
FROM employees;

Tu sa pre každý riadok vypočíta priemerná mzda podľa oddelenia, ale riadky sa nezhŕňajú — vidíme všetkých zamestnancov s pridaným stĺpcom.

Na rozdiel od GROUP BY, funkcie okien umožňujú analyzovať údaje v kontexte skupiny, bez straty detailov o jednotlivých riadkoch.