Middle
Aký je rozdiel medzi oknovou funkciou a agregačnou funkciou v SQL?
sobes.tech AI
Odpoveď od AI
Aritmetická funkcia v SQL (napríklad SUM, AVG, COUNT) vypočíta jednu konečnú hodnotu pre skupinu riadkov a vráti jeden riadok na skupinu. Napríklad SUM(salary) vypočíta súčet platov pre celú skupinu.
Funkcia okna (window function) tiež pracuje so skupinami riadkov, ale vracia výsledok pre každý riadok s ohľadom na kontext okna (súbor riadkov okolo aktuálneho). Napríklad SUM(salary) OVER (PARTITION BY department) vráti súčet platov podľa oddelenia pre každý riadok, bez zníženia výsledku na jeden riadok.
Príklad:
SELECT employee_id, department, salary,
SUM(salary) OVER (PARTITION BY department) AS dept_salary_sum
FROM employees;
Tu bude pre každý riadok zobrazený súčet platov v oddelení, nie jeden riadok na oddelenie, ako pri použití agregačnej funkcie s GROUP BY.