16. Товары с максимальной ценой в каждой категории товаров #
Условие задачи:
📊 Составить SQL-запрос, который выводит наименования товаров с максимальной ценой в каждой категории.
📌 Таблица Prices
(данные о товарах):
Name
– название товараCategory
– категория товараPrice
– цена товара
🚀 Требуется вернуть:
Category
Name
(товар с максимальной ценой в категории)Price
(максимальная цена в категории)
Дана таблица Prices в БД.
Name Category Price
--------------------------------------
Апельсин Фрукты 50
Мандарин Фрукты 45
Яблоко Фрукты 30
Огурец Овощи 35
Томат Овощи 40
Картофель Овощи 25
Молоко Молочные продукты 30
Творог Молочные продукты 40
Спойлеры к решению
Подсказки
💡 Для каждой категории находим максимальную цену с помощью
💡 Затем выбираем товары, у которых
💡 Используем
MAX(Price)
.💡 Затем выбираем товары, у которых
Price
равно найденному максимуму.💡 Используем
JOIN
или WHERE
с подзапросом.Решение
SELECT p1.Category, p1.Name, p1.Price
FROM Prices p1
WHERE p1.Price = (
SELECT MAX(p2.Price)
FROM Prices p2
WHERE p1.Category = p2.Category
);
✅ Объяснение решения:
- Подзапрос
SELECT MAX(p2.Price) FROM Prices p2 WHERE p1.Category = p2.Category
находит максимальную цену в каждой категории. - Основной запрос выбирает товары с этой максимальной ценой.
- Если в категории несколько товаров с одинаковой максимальной ценой, они все попадут в результат.
🔥 Теперь запрос вернет товары с самой высокой ценой в каждой категории! 🚀