Sabendo o número de observadores

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 curtidas

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 curtidas

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

2 curtidas

Was this ability ever added to Discourse reporting?

Houve alguma atualização sobre isso?

Olá Tom,

Isso não foi adicionado como um relatório padrão de DE. No entanto, encontrei um tópico que fornece uma consulta básica de DE para extrair essas informações, talvez isso seja útil:

2 curtidas

Olá Mark,

Obrigado. Então, com base nisso, parece que não consigo executar esta função no nível do tópico. Está correto?

Tom,

Não, você pode obter essas informações em nível de tópico trocando ‘topic’ por ‘category’ assim:

SELECT
  COUNT(topic_id)
FROM
  topic_users
WHERE
  notification_level = 3

Novamente, esta é uma consulta muito básica que retorna apenas uma contagem total de observadores de… neste caso… todos os tópicos. Se você quiser especificar um tópico em particular, você pode adicionar à cláusula WHERE, por exemplo:

WHERE
  notification_level = 3
  AND topic_id = 29
8 curtidas

Isto é ótimo!

Obrigado!

1 curtida

Isso é muito útil, obrigado @MarkDoerr. Modifiquei a consulta para relatar todos os quatro níveis de notificação em uma única passagem e para aceitar uma matriz de topic_ids, se necessário.
A tabela de saída completa da grade não é bonita, mas tem todas as informações de que preciso.

editar: claro, assim que postei, o Discourse gentilmente me mostrou seis links com outras maneiras de resolver isso! Continue a consulta!

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) -- Adicione seus topic_ids aqui
GROUP BY
  topic_id, notification_level
1 curtida