Нужно вывести только оплаченные заказы (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 даст старые сверху.

Проверь себя · 1/3разбор после ответа
Вы сортируете товары по величине скидки discount по убыванию. discount может быть NULL (скидки нет). Чтобы товары без скидки всегда были внизу независимо от настроек СУБД, какой вариант сортировки выбрать?
Тренировать SQL в Telegram

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