Нужно вывести только оплаченные заказы (status = 'paid') и отсортировать их по времени создания от новых к старым. Какой запрос соответствует задаче?
A
SELECT order_id, created_at FROM orders ORDER BY created_at DESCB
SELECT order_id, created_at FROM orders WHERE status = 'paid' ORDER BY created_at DESCC
SELECT order_id, created_at FROM orders WHERE status = 'paid' ORDER BY created_at ASCD
SELECT 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-запросов»
- В таблице `users` нужно выбрать только активных пользователей из России или Казахстана. Какой `WHERE` соответствует требованию?
- Для отчёта по регистрациям вам нужны только `user_id` и `signup_at` из таблицы `users`. Какой запрос лучше соответствует задаче и не тянет лишние поля?
- Нужно получить 20 самых новых событий из таблицы `events` (по времени `event_time`) и показать их в выдаче сверху. Какой запрос верный?
- Вы строите выдачу «последние заказы» и используете `LIMIT 50`. Поле `created_at` не уникально (много заказов в одну секунду). Какой `ORDER BY` лучше, чтобы порядок был детерминированным?
- Что можно корректно утверждать про результат запроса `SELECT user_id FROM users LIMIT 10`, если в запросе нет `ORDER BY`?
- Все вопросы по «Основы SQL-запросов» →