Back to questions
Junior — Middle
77
Можете объяснить концепцию оконных функций в системах управления базами данных?
Companies where asked
Почтатех
Answer from AI
sobes.tech AI
Оконные функции (window functions) в СУБД позволяют выполнять вычисления по набору строк, связанных с текущей строкой, без группировки результатов. Они полезны для аналитики и сложных запросов, где нужно получить агрегаты, ранжирование, скользящие суммы и т.п., сохраняя при этом детализацию каждой строки.
Принцип работы:
- Определяется окно (набор строк) с помощью конструкции OVER(), где можно указать PARTITION BY (разбиение на группы) и ORDER BY (порядок внутри группы).
- Для каждой строки вычисляется функция по окну, например, сумма, среднее, номер строки и т.д.
Пример в SQL:
SELECT
employee_id,
department_id,
salary,
RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS salary_rank
FROM employees;
Здесь для каждого сотрудника вычисляется ранг зарплаты внутри его отдела, при этом каждая строка остаётся в результате.