您好 @tpsReports,
我没有一个非常强大的 Discourse 实例可以进行彻底的测试,但我认为这个 Data Explorer 查询可能会为您指明正确的方向。(也许其他人可以帮忙完善一下!)
SELECT count(*)
FROM post_actions AS pac
JOIN posts p on p.id = pac.post_id
JOIN topics t on t.id = p.topic_id
WHERE pac.post_action_type_id in ('3','4','7','8')
AND pac.created_at >= NOW() - INTERVAL '20 MINUTE'
AND t.category_id = '4'
在此示例中,我将标记创建以来的时间指定为 20 分钟(第 6 行),这与您在示例中给出的时间相同。
在第 7 行,我使用了类别 ID 4,但您需要使用您想要跟踪的类别的特定类别 ID。
如果您想通过名称引用类别,可以向查询添加另一个连接,如下所示:
SELECT count(*)
FROM post_actions AS pac
JOIN posts p on p.id = pac.post_id
JOIN topics t on t.id = p.topic_id
JOIN categories c on c.id = t.category_id
WHERE pac.post_action_type_id in ('3','4','7','8')
AND pac.created_at >= NOW() - INTERVAL '20 MINUTE'
AND c.name = 'General'
然后,将第 8 行中我使用的 General 替换为您类别的名称。请记住,类别名称区分大小写。
如果这对您有帮助,请告诉我!