Sobes.tech
Junior — Middle

Czy masz doświadczenie w korzystaniu z funkcji okienkowych podczas pracy z zapytaniami SQL?

sobes.tech AI

Odpowiedź od AI

Tak, podczas pracy z zapytaniami SQL używałem funkcji okienkowych (window functions). Pozwalają one na wykonywanie obliczeń na zbiorze wierszy powiązanych z bieżącym wierszem, bez grupowania wyników, co jest przydatne w analizie i skomplikowanych zapytaniach.

Główne funkcje okienkowe:

  • ROW_NUMBER() — numeracja wierszy w oknie
  • RANK(), DENSE_RANK() — ranking z uwzględnieniem remisów
  • SUM(), AVG(), COUNT() — funkcje agregujące na oknie

Przykład: uzyskanie listy pracowników z ich wynagrodzeniem i numerem porządkowym według działu w kolejności malejącej wynagrodzenia:

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

Tutaj PARTITION BY dzieli dane według działów, a ORDER BY ustawia kolejność w każdym dziale. Funkcje okienkowe umożliwiają wykonywanie złożonych zapytań analitycznych bez utraty szczegółów.