8. Получить id пользователей, потративших более 1 000 000 рублей (без подзапросов)? #
Представим, что у нас есть свой магазин. К нам приходят люди и покупают у нас что-то. Мы храним всю историю покупок всех пользователей в таблице в базе данных. Таблица выглядит следующим образом:
orders:
id - автоинкрементный первичный ключ,
user_id - идентификатор пользователя
amount - сумма покупки которую совершил пользователь
Мы оперируем только этой одной таблицей и считаем, что других таблиц нет. Требуется написать SQL запрос для получения идентификаторов всех пользователей, которые совершили покупки за все время на сумму больше чем на 1 000 000 рублей.
Ограничения: Запрос надо написать без использования подзапросов.
Спойлеры к решению
Подсказки
📊 Нужно найти пользователей, чья общая сумма покупок больше 1 000 000.
🔗 Таблица
🧮 Нам нужно суммировать
🚀 Используем
🔗 Таблица
orders
содержит user_id и amount (сумма покупки).🧮 Нам нужно суммировать
amount
по каждому user_id
.🚀 Используем
GROUP BY
для группировки и HAVING
для фильтрации.Решение
SELECT user_id
FROM orders
GROUP BY user_id
HAVING SUM(amount) > 1000000;
📌 Объяснение:
GROUP BY user_id
– группируем заказы поuser_id
.SUM(amount)
– считаем общую сумму покупок каждого пользователя.HAVING SUM(amount) > 1000000
– отбираем только тех, кто потратил больше миллиона.
✅ Готово! 🛍🔥