Daten-Diskrepanz bei Nutzerbeitragszählungen

Ich versuche, eine mögliche Datenabweichung zu verstehen, die ich beobachte. Ich habe einige Abfragen mit dem Data Explorer-Plugin durchgeführt, um Statistiken zu unseren am häufigsten postenden Nutzern zu erhalten. Eine der verwendeten Abfragen war folgende:

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

Diese lieferte beispielsweise 100 Beiträge für einen bestimmten Benutzer. Dann habe ich beschlossen, die Abfrage etwas anders zu gestalten:

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

Diese Abfrage ergab für denselben Benutzer 135 Beiträge. Und dies scheint die korrekte Anzahl zu sein, da sie tatsächlich jeden einzelnen Beitrag aus der Tabelle posts zählt, anstatt sich auf das Feld post_count aus user_stats zu verlassen.

Ich versuche also zu verstehen, warum es hier zu einer Abweichung kommt. Dies betrifft einen Nicht-Admin- und Nicht-Moderator-Benutzer, sodass keine Admin-Aktionen als Beiträge erscheinen. Hat jemand eine Idee, warum dies passieren könnte?

Hallo Holly, die Tabelleneinträge enthalten auch private Nachrichten und gelöschte Beiträge. Vielleicht umfasst user_stats.post_count nur nicht gelöschte Beiträge und keine privaten Nachrichten oder gelöschten Beiträge? Jemand mit mehr Wissen kann das hoffentlich beantworten.

4 „Gefällt mir“

Ja, das ist genau richtig, @JusticeUK

2 „Gefällt mir“

Danke für die Info. Allerdings hat dieser Benutzer keine gelöschten Beiträge (ich habe sein Profil noch einmal überprüft und p.deleted_at is null zu meiner obigen Abfrage hinzugefügt, sehe aber immer noch dieselben Zahlen. In unserem Forum sind zudem private Nachrichten deaktiviert, daher denke ich nicht, dass diese die Zahlen verfälschen.

Bei den Beiträgen dieses Benutzers handelt es sich durchweg um post_type = 1. Ich weiß noch nicht genau, was ein post_type von 1 bedeutet, aber alle seine scheinen normale Beiträge zu sein.