46. SQL: Zaawansowane Funkcje Okna
SQLAnaliza trendów i rankingi (ROW_NUMBER) w czasie.
SELECT
department_id,
employee_name,
salary,
ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) as rank_in_dep
FROM employees;
Kiedy używać
Przydatne przy rankingach, porównaniach rok-do-roku czy analizach trendów bez konieczności pisania podzapytań.
Typowe pułapki
ROW_NUMBER() przypisuje unikalny numer nawet przy remisach — jeśli zależy Ci na wspólnej pozycji przy tej samej wartości, użyj RANK() lub DENSE_RANK().