Middle
Jaka jest różnica między funkcją okienkową a funkcją agregującą w SQL?
sobes.tech AI
Odpowiedź od AI
Funkcja agregująca w SQL (np. SUM, AVG, COUNT) oblicza jedną wartość końcową dla grupy wierszy i zwraca jeden wiersz na grupę. Na przykład, SUM(salary) obliczy sumę wynagrodzeń dla całej grupy.
Funkcja okienkowa (window function) również działa na grupach wierszy, ale zwraca wynik dla każdego wiersza, uwzględniając kontekst okna (zbiór wierszy wokół bieżącego). Na przykład, SUM(salary) OVER (PARTITION BY department) zwróci sumę wynagrodzeń dla każdego działu dla każdego wiersza, nie redukując wyniku do jednego wiersza.
Przykład:
SELECT employee_id, department, salary,
SUM(salary) OVER (PARTITION BY department) AS dept_salary_sum
FROM employees;
Tutaj dla każdego wiersza wyświetli się suma wynagrodzeń w dziale, a nie jeden wiersz na dział, jak w przypadku funkcji agregującej z GROUP BY.