Čime se funkcije prozora razlikuju od GROUP BY?
sobes.tech АИ
Одговор од АИ
Funkcije prozora i GROUP BY u SQL-u služe različitim svrhama, iako obe rade sa agregovanim podacima.
GROUP BY kombinuje redove po navedenim kolonama i vraća po jedan red za svaku grupu. Mogu se primeniti agregatne funkcije (SUM, COUNT itd.), ali rezultat se svodi na jedan red po grupi.
Funkcije prozora računaju agregate ili druge kalkulacije nad skupom redova nazvanim prozor, bez smanjenja broja vraćenih redova. Svaki red se čuva, ali mu se dodaje rezultat funkcije izračunat nad prozorom.
Primer:
SELECT
employee_id,
department_id,
salary,
AVG(salary) OVER (PARTITION BY department_id) AS avg_dept_salary
FROM employees;
Ovde se za svaki red računa prosečna plata po odeljenju, ali redovi se ne grupišu — vidimo sve zaposlene sa dodatnim kolonom.
Za razliku od GROUP BY, funkcije prozora omogućavaju analizu podataka u kontekstu grupe, bez gubitka detalja o pojedinačnim redovima.