Расхождение данных в подсчёте постов пользователей

Я пытаюсь разобраться в возможном расхождении данных, которое я наблюдаю. Я выполнял несколько запросов с помощью плагина 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, а не полагается на поле post_count из user_stats.

Поэтому я пытаюсь понять, почему возникает такое расхождение. Это касается обычного пользователя (не администратора и не модератора), поэтому у него нет множества действий администратора, которые могли бы отображаться как сообщения. Есть ли у кого-нибудь идеи, почему это может происходить?

Привет, Холли, посты в таблице также будут включать личные сообщения и удалённые посты. Возможно, user_stats.post_count включает только неотклонённые посты, но не личные сообщения и удалённые посты? Кто-то с более глубокими знаниями, надеюсь, сможет ответить.

Да, всё верно, @JusticeUK

Спасибо за информацию. Однако у этого пользователя нет удалённых постов (я дважды проверил его профиль и добавил условие p.deleted_at is null к своему предыдущему запросу, но цифры остались прежними). На нашем форуме также отключены личные сообщения, так что, думаю, они не влияют на эти показатели.

При просмотре постов этого пользователя все они имеют post_type = 1. Пока точно не знаю, что означает post_type со значением 1, но все его посты кажутся обычными сообщениями.