Учитывая таблицы пользователей и заказов, мне нужно подсчитать пользователей, которые сделали свой первый заказ на следующий день после даты регистрации.
Мне удалось перечислить таких пользователей по следующему запросу:
SELECT
users.first_name as first_name,
users.last_name as last_name,
users.registration_date as registration_date,
min(orders.order_date) as first_order_date
FROM `users_table` as users
JOIN `orders_table` as orders
ON users.id = orders.user_id
GROUP BY
first_name,
last_name,
registration_date
HAVING
date_diff(first_order_date, registration_date, DAY) = 1
ORDER BY
registration_date ASC
LIMIT 5
В результате:
+------------+-----------+-------------------+------------------+
| first_name | last_name | registration_date | first_order_date |
+------------+-----------+-------------------+------------------+
| Albert | Ellis | 2013-04-11 | 2013-04-12 |
| Charles | Moore | 2014-04-29 | 2014-04-30 |
| Jimmy | Payne | 2014-07-01 | 2014-07-02 |
| Angela | Stanley | 2014-10-21 | 2014-10-22 |
| Marie | Bishop | 2014-11-15 | 2014-11-16 |
+------------+-----------+-------------------+------------------+
Теперь я не могу обернуться, считая их. Когда я пытаюсь что-то вроде:
SELECT
count(date_diff(min(orders.order_date), users.registration_date, DAY) = 1)
FROM `users_table` as users
JOIN `orders_table` as orders
ON users.id = orders.user_id
Я получаю сообщение об ошибке "Агрегации агрегатов не допускаются". Как мне изменить запрос, чтобы решить это?