Middle
Do czego służą funkcje okienkowe w SQL?
sobes.tech AI
Odpowiedź od AI
Funkcje okienkowe w SQL wykonują agregację danych w zestawie wierszy powiązanych z bieżącym wierszem, ale nie grupują zbioru wyników. Pozwala to na wykonywanie obliczeń takich jak sumy skumulowane, średnie ruchome czy ranking, zachowując wszystkie wiersze zapytania źródłowego.
Główne cele korzystania z funkcji okienkowych:
- Ranking: Przypisanie rangi każdemu wierszowi w określonym oknie.
-- Uzyskanie rangi pracowników według wynagrodzenia w ramach każdego działu SELECT employee_name, salary, department, RANK() OVER (PARTITION BY department ORDER BY salary DESC) as department_rank FROM employees; - Obliczanie statystyk dla grupy wierszy bez grupowania: Agregacja danych w obrębie "okna" wierszy, zachowując szczegółowość na poziomie wiersza.
-- Obliczanie średniego wynagrodzenia dla całego działu dla każdego wiersza SELECT employee_name, salary, department, AVG(salary) OVER (PARTITION BY department) as avg_department_salary FROM employees; - Porównanie bieżącego wiersza z innymi wierszami w oknie: Dostęp do danych z poprzednich lub następnych wierszy w oknie.
-- Uzyskanie wynagrodzenia poprzedniego pracownika w dziale w kolejności malejącej według wynagrodzenia SELECT employee_name, salary, department, LAG(salary, 1, 0) OVER (PARTITION BY department ORDER BY salary DESC) as previous_salary FROM employees; - Obliczenia z sumą narastającą: Obliczanie sum, średnich i innych agregacji w sumie narastającej.
-- Obliczanie sumy narastającej sprzedaży według daty SELECT sale_date, amount, SUM(amount) OVER (ORDER BY sale_date) as cumulative_sales FROM sales;
W przeciwieństwie do zwykłych funkcji agregujących (GROUP BY), funkcje okienkowe nie łączą wierszy, co czyni je potężnym narzędziem do zapytań analitycznych i szczegółowej analizy danych.