Sobes.tech
Middle

Mi a különbség az ablakfüggvény és az aggregáló függvény között SQL-ben?

sobes.tech MI

Válasz az MI-től

Az SQL-ben az aggregáló függvények (például SUM, AVG, COUNT) egy csoport sorra vonatkozó végső értéket számítanak ki, és egy sort adnak vissza csoportonként. Például a SUM(salary) az összes fizetés összegét számolja ki a csoportban.

Az ablakfüggvény (window function) szintén sorcsoportokon működik, de eredményt ad vissza minden sorra, figyelembe véve az ablak (a jelenlegi sor körüli sorok halmaza) kontextusát. Például a SUM(salary) OVER (PARTITION BY department) minden osztályra vonatkozó fizetések összegét adja vissza minden sorra, anélkül, hogy az eredményt egy sorra csökkentené.

Példa:

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

Itt minden sorhoz megjelenik az osztályon belüli fizetések összege, nem pedig egy sor osztályonként, mint az aggregáló függvények esetében a GROUP BY használatával.