用户帖子计数中的数据差异

我正在试图弄清楚我遇到的一个潜在数据差异问题。我一直在使用 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 篇帖子。这似乎是正确的数字,因为它实际上是在统计 posts 表中的每一篇帖子,而不是依赖 user_stats 表中的 post_count 字段。

因此,我正在尝试理解为什么会出现这种差异。这是一个非管理员、非版主用户的查询,因此不会有很多以帖子形式出现的管理员操作。对于这种情况,大家有什么想法吗?

你好 Holly,表格帖子也将包含私信和已删除的帖子。也许 user_stats.post_count 仅包含未删除的帖子,而不包括私信和已删除的帖子?希望有更了解的人能解答。

4 个赞

没错,完全正确 @JusticeUK

2 个赞

感谢提供信息。不过,该用户没有任何已删除的帖子(我已再次检查其个人资料,并在上述查询中添加了 p.deleted_at is null,但看到的数字仍然相同。我们的论坛也禁用了私信,因此我认为这不会影响统计数字。

查看该用户的帖子时,发现它们的 post_type 均为 1。我目前还不清楚 post_type 为 1 具体代表什么,但他的所有帖子看起来都像是普通帖子。