Я использовал запрос Data Explorer, чтобы определить, кто участвовал в теме на основе user_actions:
-- [params]
-- int :topic = 3620561
select user_id,
sum(action_type) actions,
sum(case action_type when 5 then 1 else 0 end) replies
from user_actions ua
join users u on u.id = ua.user_id
where target_topic_id = :topic
and moderator is false
and admin is false
group by ua.user_id
Это включает такие действия, как ответы, лайки, правки и упоминания. У меня также есть запрос, который включает ответы на опросы. Это было для сбора потенциальных клиентов, но я ожидаю, что некоторые из тех, кто что-то сделал, кроме ответа, могут иметь отношение к теме. Определение «участия» может быть полезным упражнением.
Чтобы расширить запрос на всю категорию, присоединитесь к topics t on target_topic_id = t.id и добавьте category_id в условие where. Определить временной интервал на основе ua.created_at не должно составить труда.