スタッフが回答していないトピックをフィルタリング

Discourse フォーラム(forum.testproject.io)の管理者として、まだスタッフメンバーから回答されていないスレッドをフィルタリングしたいと考えています。

https://forum.testproject.io/latest?max_posts=1 という URL は返信数が 0 のスレッドのみをフィルタリングしますが、スタッフからの返信がないスレッドをすべてフィルタリングしたいのです(コミュニティからの返信があるため返信数 > 0 であっても、それらはスタッフからの返信ではないためです)。

フォーラムの例を挙げますと、こちらのスレッド では誰かが質問をし、コミュニティのメンバーが回答しています。しかし、Discourse スタッフ側としては、このスレッドが実質的に未回答であるとどのように把握できるのでしょうか?

よろしくお願いいたします :slight_smile:
Karen

これを確認するには、Data Explorer クエリを作成する必要があります。クエリを作成するには、SQL のスキルが必要か、SQL クエリの書き方を理解している必要があります。

Data Explorer が聞き慣れない場合は、以下をご覧ください:

Data Explorer クエリの書き方についてまだご質問がある場合は、新しい Support トピックを作成し、data-explorer でタグ付けしてください。

@osioke さん、こんにちは!
迅速なご返信をありがとうございます。

私自身は SQL のスキルを持っておりませんので、貴チームで対応していただける方はおりますでしょうか?(有料顧客としてのご相談でございます :slight_smile:

よろしくお願いいたします。
Karen

こんにちは、Karen さん、

通常、下位プランはセルフサービスですが、今回はお手伝いできます。私の同僚がすぐにご返信いたします。

さらにクエリが必要な場合は、これを支援する素晴らしい Marketplace がございます。

カレン、こんにちは。

以下のクエリは、コミュニティから返信が寄せられていても、スタッフからの返信がないトピックをすべてリストアップします。

--[params]
--date :start_date = 2021-01-01
--date :end_date = 2021-12-31

SELECT t.id topic_id, category_id
FROM topics t
WHERE t.deleted_at IS NULL
  AND t.category_id IS NOT NULL
  AND t.created_at::date BETWEEN :start_date AND :end_date
  AND t.id NOT IN (
    SELECT p.topic_id
    FROM posts p 
    JOIN users u ON p.user_id = u.id
    WHERE  u.admin = 't' OR u.moderator = 't'
      AND p.post_number > 1
  )
ORDER BY topic_id DESC