Top quality users in last six months

Top quality users in last six months

Top 20 users by average post score.

Post scores are calculated based on reply count, likes, incoming links, bookmarks, average time (reading?) and read count.

SELECT 
    sum(p.score) / count(p) as "average score per post", 
    count(p.id) as post_count, 
    p.user_id
FROM posts p
JOIN users u ON u.id = p.user_id
WHERE p.created_at >= CURRENT_DATE - INTERVAL '6 month'
  AND NOT u.admin
  AND NOT u.silenced
  AND u.active
GROUP by user_id, u.views
HAVING count(p.id) > 50
ORDER BY sum(p.score) / count(p) DESC
LIMIT 20

مرحبًا، أنا أحب استعلام ‘المستخدمون ذوو الجودة العالية في الأشهر الستة الأخيرة’. أتساءل… كيف يمكننا كتابة استعلام مشابه لعرض المستخدمين ذوي الجودة الأدنى خلال الأشهر الستة الماضية؟ شخص نشر الكثير، لكنه تلقى عددًا قليلًا جدًا من الإعجابات والردود، وما إلى ذلك.

حاول إزالة “DESC” من هذا السطر:

ORDER BY sum(p.score) / count(p)

ممتاز، شكرًا لك. أقدر ذلك حقًا!

كما قمت بتغيير عبارة " HAVING count(p.id) > 5" للحصول على نتائج أكثر ملاءمة لمجتمعي. سأواصل التجربة مع ذلك. يبدو أن فريق المشرفين لدينا يتدخل مع الأشخاص قبل أن ينشروا بشكل مفرط إذا كانت منشوراتهم ذات جودة منخفضة. ويبدو أن هذا الاستعلام يمكن أن يساعد في تأكيد حدسي بشأن شخص ما، كما يمنحني قراءة مبكرة حول من لا يبدأ بشكل جيد.