Back to questions
X5 tech
Middle+
1
Расскажи про оконные функции в SQL.
Companies where asked
Answer from AI
sobes.tech AI
Оконные функции (window functions) в SQL позволяют выполнять вычисления по набору строк, связанных с текущей строкой, без группировки результатов. Они полезны для вычисления агрегатов, ранжирования, скользящих средних и других аналитических задач.
Основные особенности:
- Работают по окну строк, определённому с помощью
OVER(). - Не уменьшают количество строк в результате, в отличие от
GROUP BY. - Позволяют использовать функции ранжирования (
ROW_NUMBER(),RANK()), агрегатные функции (SUM(),AVG()) и др.
Пример: получить порядковый номер сотрудника в отделе по зарплате:
SELECT
employee_id,
department_id,
salary,
ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank_in_dept
FROM employees;
Здесь PARTITION BY разбивает данные по отделам, а ORDER BY сортирует по зарплате внутри каждого отдела. Функция ROW_NUMBER() присваивает номер строки в каждой группе.
Таким образом, оконные функции расширяют возможности аналитики в SQL, позволяя работать с данными в контексте соседних строк без потери детализации.