Нужно получить 5 самых дешёвых товаров категории 'electronics' из таблицы products. Какой запрос верный?

ASELECT product_id, price FROM products WHERE category = 'electronics' ORDER BY price DESC LIMIT 5;
BSELECT product_id, price FROM products WHERE category = 'electronics' LIMIT 5 ORDER BY price ASC;
CSELECT product_id, price FROM products WHERE category = 'electronics' ORDER BY price ASC LIMIT 5;
DSELECT product_id, MIN(price) FROM products WHERE category = 'electronics' LIMIT 5;
Правильный ответ. Чтобы получить топ-N по критерию, нужна сортировка по этому критерию и LIMIT после неё.

Разбор

Сначала отбираем нужную категорию через WHERE category = 'electronics', затем сортируем по цене по возрастанию (ORDER BY price ASC), чтобы дешёвые оказались сверху, и берём первые 5 строк через LIMIT 5. Сортировка по убыванию (DESC) даст самые дорогие. Перестановка LIMIT перед ORDER BY синтаксически некорректна. Использование MIN(price) без GROUP BY соберёт всё в одну строку и не вернёт 5 товаров.

Проверь себя · 1/3разбор после ответа
Что вернёт запрос SELECT COUNT(DISTINCT user_id) FROM orders, если у некоторых пользователей несколько заказов?
Тренировать SQL в Telegram

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