@road_warrior12

Как подсчитать количество постоянных клиентов?

Всем хорошего дня. Столкнулся с такой задачей - подсчитать количество клиентов, у которых были заказы каждый день за последний месяц. Есть таблица orders, в ней есть колонки order_id, created(дата создания заказа, формат datetime ) и user_id.
Как сделать так, чтобы в расчет брались заказы только за последний месяц я понял ( мой неполный запрос будет ниже )
А как сделать так, чтобы в выводе учитывались только клиенты, которые делали заказ каждый день ?
Текущий код:
SELECT count(user_id)
FROM orders
WHERE DATE(created) >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH)

Спасибо !
  • Вопрос задан
  • 326 просмотров
Пригласить эксперта
Ответы на вопрос 2
rozhnev
@rozhnev Куратор тега MySQL
Fullstack programmer, DBA, медленно, дорого
SELECT user_id, count(distinct created)
FROM orders
WHERE created > DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY) -- get last 30 day orders
GROUP BY user_id
HAVING count(distinct created) = 30 -- check user have orders in 30 different days
;


MySQL sandbox
Ответ написан
402d
@402d
начинал с бейсика на УКНЦ в 1988
Учебная или реальная задача ?
В реале я бы упростил до
клиенты которые делали заказы 30 дней за последние 30 дней.

дату время упрошаем до даты
считаем кол-во уникальных дней с заказами у каждого клиента
выбираем тех у кого оно равно 30

А в учебных целях стоит освоить генерацию курсора с данными (даты без пропуска)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы