Топ клиентов в SQL: агрегация перед ранжированием
Запрос ищет крупнейших клиентов, но работает со строками отдельных заказов. Проверьте, какой объект он фактически ранжирует.
Выберите ответ и проверьте себя. Продолжить тему можно в курсе Продвинутый SQL: сложные запросы и задачи для собеседований.
Аналитик хочет найти топ-3 клиентов по суммарным тратам за год. В таблице orders хранятся отдельные покупки (order_id, client_id, amount). Аналитик написал запрос: WITH ranked AS (SELECT client_id, amount, DENSE_RANK() OVER (ORDER BY amount DESC) AS rnk FROM orders) SELECT client_id FROM ranked WHERE rnk <= 3. В чём методическая ошибка этого запроса?
Без регистрации · результат не сохраняется
Связанные задачи
- SQL: Агрегация, оконные вычисления и фильтрация — Категории-лидеры и доля в продажах
- SELF JOIN: сколько пар получится при соединении таблицы с собой
- INTERSECT в SQL: сколько строк останется после пересечения
- SQL: SELF JOIN и поиск уникальных пар — Пары с несколькими общими проектами
- SQL EXISTS: размножит ли запрос строки клиента
- SQL: Календарная таблица и пропущенные даты — Непрерывный отчёт о звонках
