Sobes.tech
Middle

Koja je razlika između funkcije prozora i funkcije agregacije u SQL-u?

sobes.tech АИ

Одговор од АИ

Агрегатна функција у SQL-у (нпр., SUM, AVG, COUNT) израчунава једну коначну вредност за групу редова и враћа један ред по групи. На пример, SUM(salary) ће израчунати збир зарада за целу групу.

Функција прозора (window function) такође ради са групама редова, али враћа резултат за сваки ред, узимајући у обзир контекст окна (скуп редова око тренутног). На пример, SUM(salary) OVER (PARTITION BY department) враћа збир зарада по одељењу за сваки ред, без смањивања резултата на један ред.

Пример:

SELECT employee_id, department, salary,
       SUM(salary) OVER (PARTITION BY department) AS dept_salary_sum
FROM employees;

Овде ће за сваки ред бити приказан збир зарада у одељењу, а не један ред по одељењу, као код коришћења агрегатне функције са GROUP BY.