Встречается на собеседованиях • сегодня

Какие знаешь аналитические функции в SQL

Аналитические функции в SQL позволяют выполнять вычисления над набором строк, связанных с текущей строкой, без группировки. Основные:

  1. Оконные функции:
sql
SUM(salary) OVER (PARTITION BY department_id ORDER BY hire_date)
  1. Ранжирование:
  • ROW_NUMBER() - уникальный номер строки
  • RANK() - ранг с пропусками
  • DENSE_RANK() - ранг без пропусков
  1. Смещение:
  • LAG(column, offset) - предыдущая строка
  • LEAD(column, offset) - следующая строка
  1. Агрегатные:
  • FIRST_VALUE(), LAST_VALUE() - первое/последнее значение в окне
  • NTH_VALUE(column, n) - n-ное значение
  1. Статистические:
  • PERCENT_RANK() - относительный ранг (0-1)
  • CUME_DIST() - кумулятивное распределение

Пример:

sql
SELECT 
    employee_id, 
    salary,
    AVG(salary) OVER (PARTITION BY department_id) as avg_dept_salary
FROM employees

Оконные функции работают после WHERE/GROUP BY, но до ORDER BY.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы