Ich habe eine Data Explorer-Abfrage verwendet, um herauszufinden, wer an einem Thema basierend auf user_actions teilgenommen hat:
-- [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
Das schließt Aktionen wie Antworten, Likes, Bearbeitungen und Erwähnungen ein. Ich habe auch eine Abfrage, die Umfrag responses einschließt. Dies diente dem Sammeln von Leads, aber ich erwarte, dass einige der Leute, die etwas anderes als eine Antwort getan haben, einen Anspruch auf das Thema haben könnten. Die Definition von „teilgenommen“ könnte eine nützliche Übung sein.
Um sich auf die gesamte Kategorie auszuweiten, verbinden Sie sich mit topics t on target_topic_id = t.id und fügen Sie category_id zur WHERE-Klausel hinzu. Es sollte nicht schwer sein, den Zeitrahmen basierend auf ua.created_at zu definieren.