Отберите пятерых самых активных клиентов в США с 25 мая 2011 по 25 сентября 2011. Дату хранит поле invoice_date, тип данных поля — varchar. Выведите два поля: идентификатор клиента и количество заказов. Расположите записи по убыванию количества заказов.
В выдаче встретятся записи с одинаковым числом заказов. Их нужно отсортировать по возрастанию идентификаторов клиентов. Таким образом, получится двойная сортировка. Для этого указывают нужные поля после оператора для сортировки через запятую: ОПЕРАТОР поле_1, поле_2.
SELECT customer_id,
COUNT(customer_id)
FROM invoice
WHERE billing_country = 'USA'
AND CAST(invoice_date AS date) BETWEEN '2011-05-25' AND '2011-09-25'
GROUP BY customer_id
ORDER BY COUNT(customer_id) DESC, customer_id
LIMIT 5;
Результат
| customer_id | count |
|---|---|
| 21 | 2 |
| 18 | 1 |
| 19 | 1 |
| 23 | 1 |
| 25 | 1 |
В этом задании вам пришлось воспользоваться новым приёмом — двойной сортировкой. В следующем уроке расскажем о нём подробнее.