sql SELECT userid, COUNT() AS ordercount FROM orders WHERE pricetotal >= 1000 GROUP BY userid ORDER BY ordercount DESC;
Дана таблица "orders":
sql SELECT userid, COUNT() AS ordercount FROM orders WHERE pricetotal >= 1000 GROUP BY userid ORDER BY ordercount DESC;
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Дана таблица "orders":
+----+---------+---------------------+-------------+ | id | user_id | created_at | price_total | +----+---------+---------------------+-------------+ | 1 | 111 | [phone]:00:00 | 2000| | 2 | 222 | [phone]:00:00 | 100 | | 3 | 111 | [phone]:00:00 | 20000| | 4 | 222 | [phone]:00:00 | 500| | 5 | 333 | [phone]:00:00 | 1000| +----+---------+---------------------+-------------+
Напишите SQL-запрос, который вернёт количество заказов по каждому пользователю с price_total больше или равным 1000 в таком виде отсортированному по количеству заказов в обратном порядке:
+---------+-------------+ | user_id | order_count | +---------+-------------+ | 111 | 2 | | 222 | 1 | | 333 | 1 | +---------+-------------+
Ответ
sql SELECT user_id, COUNT(*) AS order_count FROM orders WHERE price_total >= 1000 GROUP BY user_id ORDER BY order_count DESC;