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.