Sobes.tech
Back to questions
Junior — Middle
83

Имел ли опыт использования оконных функций при работе с SQL-запросами?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

Да, при работе с SQL-запросами использовал оконные функции (window functions). Они позволяют выполнять вычисления по набору строк, связанных с текущей строкой, без группировки результата, что удобно для аналитики и сложных выборок.

Основные оконные функции:

  • ROW_NUMBER() — нумерация строк в окне
  • RANK(), DENSE_RANK() — ранжирование с учётом равенств
  • SUM(), AVG(), COUNT() — агрегатные функции по окну

Пример: получить список сотрудников с их зарплатой и порядковым номером по отделу по убыванию зарплаты:

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

Здесь PARTITION BY разбивает данные по отделам, а ORDER BY задаёт порядок внутри каждого отдела. Оконные функции позволяют делать сложные аналитические запросы без потери детализации.