Оконные функции

Ранжирование: ROW_NUMBER, RANK, DENSE_RANK

Содержание курса

0 / 1 баллов

Три позиции по сумме в каждой категории

Верните заказы, попавшие в первые три различные позиции по сумме внутри своей категории. Для каждого заказа выведите order_id, category, total_amount, amount_rank. Одинаковые суммы внутри категории получают одинаковую позицию, а следующая меньшая сумма — следующий номер без пропуска. В результате остаются позиции 1–3. Отсортируйте по category, amount_rank, order_id.

О данных в ответах

Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.

Проверяется тестами (1)
  • Тест 1
    Дополнительная подготовка SQLite
    INSERT INTO orders (order_id, category, total_amount) VALUES (1, 'Книги', 500), (2, 'Книги', 400), (3, 'Книги', 400), (4, 'Книги', 300), (5, 'Книги', 200), (6, 'Игры', 900), (7, 'Игры', 100);
    Ожидаемый результат SQLite
    6|Игры|900|1
    7|Игры|100|2
    1|Книги|500|1
    2|Книги|400|2
    3|Книги|400|2
    4|Книги|300|3
    
Практика SQLite 3

Запрос выполняется в изолированной SQLite-базе через Modal. Скрытые проверки могут добавлять свои строки перед запуском решения.

РешениеSQL · SQL / SQLite 3 (Modal)

Отправьте решение, чтобы увидеть результаты тестов.

Начать заново?

Помощник начнёт новый диалог по этой задаче. Текущая переписка останется в истории до конца срока хранения.

О переписке

Можно приложить до трёх фото PNG, JPEG или WebP по 5 МБ.

Переписка и фото хранятся 90 дней после последнего принятого сообщения. Преподаватель получит доступ к диалогу, когда вы попросите его помочь.

Проверка решения остаётся отдельным действием.