Приветствую,
подскажите пожалуйста как можно реализовать групировку кол-ва строк до определенной даты и затем посчитать строки внутри групы по условию?
Например:
Каждый месяц добавляются новые пользователи и мне нужно вывести статистику о них как кол-во пользователей увеличивалось. Мне нужно от текущей даты отнять ровно месяц, сегодня 12 июля, затем 12 июня, 12 мая и т.д и узнать сколько пользователей было на тот момент, далее пользователи имеют группы: user, customer и группа "все".
Сейчас запрос рекурсивно достает пользователей из базы для каждого месяца, далее я сам создаю из этого массив данных. Если это можно реализовать через Eloquent буду благодарен за пример.
select count(*) from `users` where created_at <= `2019-07-12`
select count(*) from `users` where created_at <= `2019-07-12` and type = 'user'
select count(*) from `users` where created_at <= `2019-07-12` and type = 'customer'
select count(*) from `users` where created_at <= `2019-06-12`
select count(*) from `users` where created_at <= `2019-06-12` and type = 'user'
select count(*) from `users` where created_at <= `2019-06-12` and type = 'customer'
$stats[] = [
'2019-07-12' => [
'all' => $this->countAll(),
'users' => $this->countUsers(),
'customers' => $this->countCustomers(),
]
];