ウォッチャーの数を知ること

これは私が初めてプラットフォームのテストを始めた頃に話題にした記憶があります。特定のトピックを購読(視聴)している人数を知る方法はあるでしょうか?

最近、この情報を求められることが増えています。

「いいね!」 2

これは、一般ユーザーに可視化される形で追加されることはまずないでしょう。

ユーザーがフォーラムをどのように利用するかを選択する自由は重要です。特定のトピックへの「ウォッチ」を特別扱いし、その数を全員に可視化することは、望ましくない行動パターンを生む可能性が高いです(「数字が増える病」は非常に強力です)。

もしリクエストがモデレーターや従業員からのものであるなら、Data Explorer クエリでこのデータを取得し、それをモデレーターや従業員が実行可能なものとしてマークできるはずです。

「いいね!」 3

非管理者には絶対にこれを望みません。DE で試してみます。

「いいね!」 2

この機能は、Discourse のレポート機能に追加されたことはありますか?

これに関して、何かアップデートはありましたか?

トムさん、

これはデフォルトの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さん、ありがとうございます。クエリを、4つの通知レベルすべてを一度に報告するように変更し、必要に応じてtopic_idの配列を受け取るようにしました。
完全なグリッド出力テーブルはきれいではありませんが、必要なすべての情報が含まれています。

編集:投稿した直後に、Discourseがこの問題を解決する他の6つのリンクを親切に表示してくれました!クエリを続行します!

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_idを追加してください
GROUP BY
  topic_id, notification_level
「いいね!」 1