Опиши оконные функции в максимально расширенном виде: какие ключевые слова используются и за что каждое отвечает.

Окно задаётся через OVER: PARTITION BY разделяет строки на группы, ORDER BY задаёт порядок внутри группы, а ROWS/RANGE/GROUPS определяет рамку вычисления.

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

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

Окно задаётся через OVER: PARTITION BY разделяет строки на группы, ORDER BY задаёт порядок внутри группы, а ROWS/RANGE/GROUPS определяет рамку вычисления.

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

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

Окно задаётся через OVER: PARTITION BY разделяет строки на группы, ORDER BY задаёт порядок внутри группы, а ROWS/RANGE/GROUPS определяет рамку вычисления.

Пример: SUM(amount) OVER (PARTITION BY client_id ORDER BY created_at, id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW). Это накопительная сумма от начала группы до текущей строки. Границы могут быть PRECEDING, FOLLOWING и UNBOUNDED; GROUPS и RANGE учитывают группы равных значений иначе, чем ROWS. Оконная функция сохраняет строки, в отличие от GROUP BY. Рамка по умолчанию зависит от ORDER BY, поэтому для LAST_VALUE и накоплений её лучше задавать явно.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее