Как выполняется этот SQL-запрос с подзапросом и DENSE_RANK (порядок выполнения)?

В типовом запросе сначала формируются строки и фильтры внутреннего SELECT, затем вычисляется DENSE_RANK, а внешний запрос фильтрует готовый ранг. Физический план может отличаться.

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

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

В типовом запросе сначала формируются строки и фильтры внутреннего SELECT, затем вычисляется DENSE_RANK, а внешний запрос фильтрует готовый ранг. Физический план может отличаться.

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

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

В типовом запросе сначала формируются строки и фильтры внутреннего SELECT, затем вычисляется DENSE_RANK, а внешний запрос фильтрует готовый ранг. Физический план может отличаться.

DENSE_RANK присваивает одинаковый ранг равным значениям сортировки и не оставляет пропусков после группы. Оконную функцию нельзя использовать в WHERE того же уровня PostgreSQL, поэтому применяют подзапрос или CTE. Внешний ORDER BY отдельно задаёт порядок выдачи. Без самого SQL нельзя разобрать конкретные соединения, условия и план исполнения.

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

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

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

Подробнее