Как написано, запрос вернет активность дня до текущего часа за текущий день и предыдущие 4 дня, плюс активность текущего часа только за пять дней назад - чтобы включить весь день в текущий часна пятый день измените предложение where на:
where timestamp>date(date_add(now(), INTERVAL -5 DAY)) and
hour(timestamp) <=hour(now())
Кроме этого, единственная проблема, о которой я могу подумать, - это проверить, есть ли индекс в столбце метки времени.В противном случае он выглядит в оптимальной форме.