Поскольку вы пометили свой вопрос тегом хранилища данных, у вас, вероятно, должно быть 2 измерения. Измерение даты для дня, а затем измерение времени для компонента часов, минут и секунд даты. Если у вас есть эти две части, вы можете просто выполнить запрос, объединяющий ваше измерение времени с вашей основной группировкой фактов по часам.
select pc.category, t.hour, count(*)
from post_details pc, -- since you said they were categorized
posts p,
time_of_day t
where p.time_of_day_id = t.time_of_day_id
and p.post_details_id = pc.post_details_id
group by pc.category, t.hour;
Даже если у вас нет всех размеров, вы все равно сможете извлечь час даты, когда была опубликована запись, и сгруппировать по.
select p.category, extract(hours from p.post_date), count(*)
from posts p;