SQL - Запрос. Для каждого читателя посчитать, сколько раз он первым брал любую книгу
Помогите, пожалуйста, решить задачу: Для каждого читателя посчитать, сколько раз он первым брал любую книгу. Если гость не брал книг - вывести 0. Вывести фамилию читателя и посчитанное значение. Последний столбец назвать Количество. Информацию отсортировать сначала по убыванию количества, а затем по фамилии читателя в алфавитном порядке.
На этапе соединения запросов в табличное выражение я поплыл и никак не могу понять как правильно написать на MySQL. Это мое не рабочее табличное выражение:
WITH GET_DATES1(book_id, MIN_borrow_date) AS (
SELECT book_id
, MIN(borrow_date)
FROM book_reader
GROUP BY 1
),
GET_DATES2(reader_id) AS (
SELECT reader_id
FROM book_reader
INNER JOIN GET_DATES1 USING(book_id)
AND book_reader.borrow_date = GET_DATES1.MIN_borrow_date
)
SELECT reader_name
, COUNT(borrow_date) AS Количество
FROM reader
LEFT JOIN GET_DATES2 USING(reader_id)
GROUP BY 1;