ユーザー投稿数にデータの不一致

最も頻繁に投稿しているユーザーの統計情報を取得するために、Data Explorer プラグインを使用していくつかのクエリを実行しています。その際に、以下のクエリを使用しました。

select u.username, us.post_count
from users u
join user_stats us
on u.id = us.user_id
order by us.post_count desc

このクエリでは、特定のユーザーについて 100 件の投稿が返ってきました。その後、クエリを少し変更して再実行することにしました。

select u.username, count(distinct p.id)
from users u
join posts p
on u.id = p.user_id
group by u.username
order by count(distinct p.id) desc

このクエリでは、同じユーザーについて 135 件の投稿が返ってきました。user_stats テーブルの post_count フィールドに依存するのではなく、posts テーブルからすべての投稿を直接数えているため、こちらの方が正しい数値のようです。

ここで、なぜこのような不一致が生じるのかを理解しようとしています。これは管理者でもモデレーターでもない一般ユーザーを対象としたものであり、管理者アクションが投稿として現れているようなケースではありません。この現象の理由について、何かご存知でしょうか?

こんにちは、ホリー。テーブルの投稿には、プライベートメッセージや削除された投稿も含まれます。おそらく user_stats.post_count には、削除されていない投稿のみが含まれ、プライベートメッセージや削除された投稿は含まれないのでしょう。詳しい知識をお持ちの方が答えられることを願っています。

「いいね!」 4

はい、その通りです @JusticeUK

「いいね!」 2

ご情報ありがとうございます。ただし、このユーザーには削除された投稿がありません(プロフィールを二度確認し、上記のクエリに p.deleted_at is null を追加しても、同じ数値が表示されます)。当フォーラムではプライベートメッセージ(PM)が無効化されているため、それが数値に影響しているとは思えません。

このユーザーの投稿を確認すると、すべて post_type = 1 です。post_type が 1 であることが具体的に何を意味するかはまだ分かりませんが、彼の投稿はすべて通常の投稿のように見えます。