Нужно вывести только оплаченные заказы (status = 'paid') и отсортировать их по времени создания от новых к старым. Какой запрос соответствует задаче?

ASELECT order_id, created_at FROM orders ORDER BY created_at DESC
BSELECT order_id, created_at FROM orders WHERE status = 'paid' ORDER BY created_at DESC
CSELECT order_id, created_at FROM orders WHERE status = 'paid' ORDER BY created_at ASC
DSELECT order_id, created_at FROM orders WHERE created_at DESC AND status = 'paid'
Правильный ответ. Фильтрация делается в WHERE, сортировка — в ORDER BY; для «от новых к старым» используют DESC.

Разбор

Чтобы получить только оплаченные строки, нужно условие WHERE status = 'paid'. Чтобы показать новые сверху, сортируем по created_at по убыванию: ORDER BY created_at DESC. Запрос без WHERE вернёт заказы всех статусов, а сортировка ASC даст старые сверху. Конструкция WHERE created_at DESC синтаксически невалидна — DESC уместен только в ORDER BY.

Проверь себя · 1/3разбор после ответа
Нужно получить 10 последних событий конкретного пользователя (user_id = 42) из таблицы events(user_id, event_time, event_name). Какой запрос корректнее всего решает задачу?
Тренировать SQL в Telegram

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