了解关注者数量

I think I bought this up way back when I first started testing the platform.
Will there ever be a way to know how many people are subscribing (watching) a particular topic?

I am being asked for this information more often these days.

2 个赞

This seems unlikely to ever be added as visible to non-administrators.

The freedom of individual users to choose how they want to consume the forum is important, and giving special consideration to Watching a topic by making the number visible to everyone is likely to create bad behavior patterns. (Number Go Up Syndrome is very powerful.)

You should be able to take a Data Explorer query that gets this data and mark it as runnable by moderators or employees, if that’s who the requests are coming from.

3 个赞

We would never want this for non-admins. I will try this with the DE.

2 个赞

Was this ability ever added to Discourse reporting?

这个有更新吗?

嗨 Tom,

这并未被添加为默认的 DE 报告。不过,我找到了一个提供基本 DE 查询以提取此信息的帖子,也许会有帮助:

2 个赞

马克,你好:

谢谢。那么,从这里来看,我无法在主题级别执行此功能。这是正确的吗?

汤姆,

不,您可以通过将“topic”替换为“category”来在主题级别获取该信息,如下所示:

SELECT 
  COUNT(topic_id)
FROM 
  topic_users 
WHERE 
  notification_level = 3

同样,这是一个非常基本的查询,它只返回来自……在这种情况下……所有主题的观察者总数。如果您想指定一个特定主题,可以添加到 WHERE 子句中,例如:

WHERE 
  notification_level = 3
  AND topic_id = 29
8 个赞

太棒了!

谢谢!

1 个赞

这非常有帮助,谢谢 @MarkDoerr。我修改了查询,以便一次性报告所有四个通知级别,并在需要时接受 topic_id 数组。
完整的网格输出表虽然不好看,但包含了所有我需要的信息。

编辑:我刚发帖,Discourse 就很贴心地显示了六个解决此问题的其他链接!继续查询!

SELECT 
  topic_id,
  notification_level,
  COUNT(CASE WHEN notification_level = 0 THEN topic_id END) AS Muted_0,
  COUNT(CASE WHEN notification_level = 1 THEN topic_id END) AS Normal_1,
  COUNT(CASE WHEN notification_level = 2 THEN topic_id END) AS Tracking_2,
  COUNT(CASE WHEN notification_level = 3 THEN topic_id END) AS Watching_3
FROM 
  topic_users 
WHERE 
  topic_id IN (9831, 9572, 9424, 7567) --在此处添加您的 topic_ids
GROUP BY
  topic_id, notification_level
1 个赞