Join таблицы сама на себя вместе с каунтом по условию
Надо считать сколько постов сделал юзер сегодня, за неделю (подзапросов таких будет еще несколько с разными условиями) и общее количество.
Но у меня подзапрос выдает не одну колонку которая привязывается к конкретному юзеру как допустим результат сгруппированый за один день а по всем юзерам.
Понимаю что топчусь где то рядом но никак не пойму в чем ошибка.
select `user_id`,
count(*) as total,
(select count(*) as total_today
from `posts` as `today_posts`
join `posts` on `today_posts`.`id` = `posts`.`id`
where `today_posts`.`created_at` between '2023-06-16 00:00:00' and '2023-06-16 23:59:59'
group by `today_posts`.`user_id`) as `total_today`
from `posts` as postsMain
group by `postsMain`.user_id
Источник: Stack Overflow на русском