Получить количество недавних флагов в определённой категории

@southpaw Вы меня опередили; я уже собирался написать :smile:

Если интересно, я добавил пользовательские поля, которые вы можете заполнить:

--[params]
-- int_list :category_ids
-- text :interval = 20min

SELECT t.category_id, count(pa.id) count
from post_actions pa
INNER JOIN posts p on p.id = pa.post_id
INNER JOIN topics t on t.id = p.topic_id
WHERE post_action_type_id in (3, 4, 6, 7, 8)
    AND t.category_id in (:category_ids)
    AND pa.created_at >= now() - interval :interval
GROUP BY t.category_id

Вы можете указать несколько идентификаторов категорий и пользовательские интервалы (например, 1ч, 30 мин, 3 месяца и т. д.)

Примечание: Я оставил post_action_type_id 6, который, как я полагаю, связан с получением пользователем предупреждения; не уверен, нужно ли вам его учитывать; если нет, просто удалите его.