過去1ヶ月で最もアクティブなユーザーの見つけ方

過去30日間で最も多く投稿したユーザーを特定する方法はありますか? 基本的には、管理者→ユーザー→アクティブユーザーリストで、1か月のフィルターを適用したような機能です。

こんにちは、ようこそ :wave:

このクエリがお役に立つはずです。

--[params]
--date :start_date = 2024-01-01
--date :end_date = 2024-02-01
--int :top = 10

SELECT
    u.id AS user_id,
    COUNT(*) Count 
FROM posts AS p
INNER JOIN users AS u on p.user_id = u.id
INNER JOIN topics AS t ON t.id = p.topic_id AND t.deleted_at ISNULL
WHERE p.created_at::date BETWEEN :start_date AND :end_date
    AND p.deleted_at ISNULL
    AND t.archetype = 'regular'
    AND p.post_type = 1
GROUP BY u.id, u.username
ORDER BY Count DESC
LIMIT :top

ここでの「アクティブ」ユーザーは、「最終ログイン日時」でソートされており、投稿数ではありません。:thinking:

「いいね!」 1

SQLクエリの実行方法を調べたところ、より高価なプランのプラグインが必要であることがわかりました。私たちはかなり小規模なので、SQLクエリへのアクセスは3倍のコストに見合う価値はないと思います。したがって、私たちにとっては、それはできないということになります。

ユーザーディレクトリはここで役立ちますか?例:
https://meta.discourse.org/u?order=post_count&period=monthly

データエクスプローラーのクエリほど正確ではありませんが、十分かもしれません。

期間を選択し、列ヘッダーをクリックして並べ替えを追加し、グループでフィルタリングし、レンチを使用して追加の列を追加することもできます。

「いいね!」 1

すごい、どうしてこれを見逃したんだろう?ありがとう、ジャミー。:smile:

「いいね!」 1

ありがとうございます。私もそれに気づかなかったとは思いませんでした。

「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.