для первого заполняющего запроса вот это имхо более-менее понятно from_unixtime(unix_timestamp(created_at) - unix_timestamp(created_at) mod 300) а потом вторым запросом группировать можно и объединить, но тогда вычисление будет выполняться каждый раз, что лишнее, так как мне сдается что интервал не будет каждый раз меняться