過去30日間で最も多く投稿したユーザーを特定する方法はありますか? 基本的には、管理者→ユーザー→アクティブユーザーリストで、1か月のフィルターを適用したような機能です。
こんにちは、ようこそ ![]()
このクエリがお役に立つはずです。
--[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
ここでの「アクティブ」ユーザーは、「最終ログイン日時」でソートされており、投稿数ではありません。![]()
「いいね!」 1
SQLクエリの実行方法を調べたところ、より高価なプランのプラグインが必要であることがわかりました。私たちはかなり小規模なので、SQLクエリへのアクセスは3倍のコストに見合う価値はないと思います。したがって、私たちにとっては、それはできないということになります。
ユーザーディレクトリはここで役立ちますか?例:
https://meta.discourse.org/u?order=post_count&period=monthly
データエクスプローラーのクエリほど正確ではありませんが、十分かもしれません。
期間を選択し、列ヘッダーをクリックして並べ替えを追加し、グループでフィルタリングし、レンチを使用して追加の列を追加することもできます。
「いいね!」 1
すごい、どうしてこれを見逃したんだろう?ありがとう、ジャミー。![]()
「いいね!」 1
ありがとうございます。私もそれに気づかなかったとは思いませんでした。
「いいね!」 2
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.