Sobes.tech
Middle

Jak podzielić dane na grupy za pomocą funkcji okienkowych w SQL?

sobes.tech AI

Odpowiedź od AI

Funkcje okienkowe w SQL pozwalają na wykonywanie obliczeń na grupach wierszy, nie redukując wyniku do jednej linii, jak ma to miejsce przy GROUP BY. Działają na zestawie wierszy (oknie) zdefiniowanym dla każdej linii.

Aby podzielić dane na grupy i zastosować funkcje okienkowe, używa się konstrukcji OVER (PARTITION BY ...). Na przykład:

SELECT
  employee_id,
  department_id,
  salary,
  RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS salary_rank
FROM employees;

Tutaj dane są dzielone na grupy według department_id, a w obrębie każdej grupy obliczany jest rangę wynagrodzenia.

W ten sposób funkcje okienkowe umożliwiają analizę danych według grup, zachowując wszystkie wiersze oryginalnej tabeli.