تباين في عدد مشاركات المستخدمين

أحاول فهم تناقض محتمل في البيانات ألاحظه. لقد قمت ببعض الاستعلامات باستخدام مكون 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 فقط المنشورات غير المحذوفة، وليس الرسائل الخاصة والمنشورات المحذوفة؟ نأمل أن يجيب شخص لديه معرفة أكبر.

4 إعجابات

نعم، هذا صحيح تماماً @JusticeUK

إعجابَين (2)

شكرًا على المعلومات. ومع ذلك، لا يحتوي هذا المستخدم على أي منشورات محذوفة (لقد راجعت ملفه الشخصي مرة أخرى وأضفت p.deleted_at is null إلى استعلامي أعلاه، ولا تزال الأرقام نفسها. كما أن الرسائل الخاصة معطلة في منتدانا أيضًا، لذا لا أعتقد أنها تؤثر على الأرقام.

عند الاطلاع على منشورات هذا المستخدم، نجد أن جميعها من النوع post_type = 1. لا أعرف بعد ما يعنيه بالضبط post_type بقيمة 1، لكن يبدو أن جميع منشوراته هي منشورات عادية.