J’ai utilisé une requête Data Explorer pour déterminer qui a participé à un sujet en fonction de 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
Cela inclut des actions telles que les réponses, les likes, les modifications et les mentions. J’ai également une requête qui inclut les réponses aux sondages. C’était pour collecter des prospects, mais je m’attends à ce que certaines des personnes qui ont fait autre chose que répondre aient un droit sur le sujet. Définir « participé » pourrait être un exercice utile.
Pour étendre à la catégorie entière, joignez avec topics t on target_topic_id = t.id et ajoutez category_id à la clause where. Il ne devrait pas être difficile de définir l’intervalle de temps en fonction de ua.created_at.