Отберите пятерых самых активных клиентов в США с 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

В этом задании вам пришлось воспользоваться новым приёмом — двойной сортировкой. В следующем уроке расскажем о нём подробнее.