Care este diferența dintre o funcție de fereastră și o funcție de agregare în SQL?
sobes.tech AI
Răspuns de la AI
Funcția de agregare în SQL (de exemplu, SUM, AVG, COUNT) calculează o valoare finală pentru un grup de rânduri și returnează un singur rând pentru fiecare grup. De exemplu, SUM(salary) va calcula suma salariilor pentru întregul grup.
Funcția de fereastră (window function) lucrează, de asemenea, cu grupuri de rânduri, dar returnează rezultatul pentru fiecare rând, luând în considerare contextul ferestrei (setul de rânduri din jurul rândului curent). De exemplu, SUM(salary) OVER (PARTITION BY department) va returna suma salariilor pe departament pentru fiecare rând, fără a reduce rezultatul la un singur rând.
Exemplu:
SELECT employee_id, department, salary,
SUM(salary) OVER (PARTITION BY department) AS dept_salary_sum
FROM employees;
Aici, pentru fiecare rând, va fi afișată suma salariilor din departament, nu un singur rând pe departament, ca în cazul utilizării funcției de agregare cu GROUP BY.