Какие оконные функции используют в аналитике и чем RANK отличается от DENSE_RANK?

В аналитике оконные функции используют для ранжирования, сравнения соседних строк и вычисления накопительных или скользящих показателей. Например, ROWNUMBER, RANK, DENSERANK, LAG, LEAD, а также агрегаты с OVER.

Короткий ответ

Что ответить на собеседовании

В аналитике оконные функции используют для ранжирования, сравнения соседних строк и вычисления накопительных или скользящих показателей. Например, ROWNUMBER, RANK, DENSERANK, LAG, LEAD, а также агрегаты с OVER.

Подробный разбор

Ответ с пояснениями

В аналитике оконные функции используют для ранжирования, сравнения соседних строк и вычисления накопительных или скользящих показателей. Например, ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD, а также агрегаты с OVER.

RANK() присваивает одинаковый ранг строкам с одинаковыми значениями сортировки и оставляет пропуски. DENSE_RANK() присваивает те же общие ранги, но без пропусков:

Значение по убыванию RANK() DENSE_RANK()
100 1 1
100 1 1
90 3 2
80 4 3

Равенство определяется всеми выражениями ORDER BY внутри OVER, а не произвольным столбцом. Поэтому добавление уникального идентификатора к сортировке уберёт совпадения рангов. Оконные функции PostgreSQL

Если вопрос касается личного опыта, лучше назвать реально использованные функции и задачу, например сравнение метрики с предыдущим периодом через LAG, а не перечислять весь каталог.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку