Usei uma consulta no Data Explorer para descobrir quem participou de um tópico com base em 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
Isso inclui ações como respostas, curtidas, edições e menções. Eu também tenho uma consulta que inclui respostas de enquetes. Isso foi para coletar leads, mas espero que algumas das pessoas que fizeram algo além de responder possam ter uma reivindicação sobre o tópico. Definir “participou” pode ser um exercício útil.
Para expandir para a categoria inteira, junte-se a topics t on target_topic_id = t.id e adicione category_id à cláusula where. Não deve ser difícil definir o período com base em ua.created_at.