В таблице orders нужно вывести заказы так, чтобы сначала шли самые дорогие (amount), а при одинаковой сумме — более ранние по created_at (чтобы вверху был «первый» из одинаковых). Какой ORDER BY подходит?

AORDER BY amount DESC, created_at ASC
BORDER BY amount ASC, created_at ASC
CORDER BY created_at ASC, amount DESC
DORDER BY amount DESC, created_at DESC
Правильный ответ. В ORDER BY можно задавать приоритет столбцов и направление сортировки для каждого столбца отдельно.

Разбор

Основной критерий — сумма заказа, поэтому amount должен идти первым. «Самые дорогие сверху» означает amount DESC. Вторичный критерий применяется только при равном amount: «более ранние выше» означает created_at ASC. Итог: ORDER BY amount DESC, created_at ASC.

Проверь себя · 1/3разбор после ответа
Нужно показать третью страницу каталога товаров: по 20 товаров на страницу, сортировка по цене по возрастанию. Какой запрос корректный?
Тренировать SQL в Telegram

Ещё вопросы по теме «Основы SQL-запросов»