Есть таблица со статистикой в ней 3 поля (id, time, user_id)
Помогите собрать один запрос, чтобы выбирать COUNT(id) WHERE time (разбит по часам) за последние 7 дней с группировкой по user_id. Просто у меня получается жуткая портянка с кучей вложенных запросов, может есть более грамотное решение
Ох каким же нубом я себя сейчас почувствовал.
У меня еще пару вопросов, а если мне надо сгруппировать по часам тоесть вернуть 168 строк с COUNT(*) по часам
select user_id, DATE_ADD( FROM_DAYS( TO_DAYS( request_time ) ), INTERVAL HOUR(request_time) HOUR ) as rh, count( * ) as cnt from stats
where request_time between DATE_ADD( CURDATE( ), INTERVAL -7 DAY ) and CURDATE( )
group by by user_id, rh
:) потому что может человеку захочется вместо DATE_ADD( CURDATE( ), INTERVAL -7 DAY ) и CURDATE( ) поставить переданные в запрос переменные… и ведь явно захочется :)