Sobes.tech
Назад к вопросам
Middle
19

Что такое оконные функции и в чём их преимущество перед агрегатными?

Компании, где спрашивали
МВидео/эльдорадо

Ответ от нейросети

sobes.tech AI

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

Преимущества оконных функций:

  • Позволяют вычислять агрегаты по «окну» строк, например, скользящие суммы, ранжирование, накопительные итоги.
  • Можно использовать вместе с обычными столбцами без группировки.
  • Удобны для аналитических запросов, где нужно сравнивать значения в пределах групп или по порядку.

Пример:

SELECT
  employee_id,
  department_id,
  salary,
  AVG(salary) OVER (PARTITION BY department_id) AS avg_dept_salary
FROM employees;

Здесь для каждой строки вычисляется средняя зарплата по отделу, при этом каждая строка остаётся в результате.