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
Bonjour, j’adore la requête « Utilisateurs de haute qualité au cours des six derniers mois ». Je me demande… comment écririons-nous une requête similaire pour afficher les utilisateurs de la plus faible qualité au cours des six derniers mois ? Quelqu’un qui a beaucoup posté, mais qui a reçu très peu de likes, de réponses, etc.
Essayez de supprimer le « DESC » de cette ligne :
ORDER BY sum(p.score) / count(p)
Excellent, merci. Je l’apprécie vraiment !
J’ai également modifié cette partie « HAVING count(p.id) > 5 » pour obtenir des résultats plus pertinents pour ma communauté. Je continuerai à l’ajuster. Il semble que notre équipe de modération intervienne auprès des utilisateurs avant qu’ils n’aient trop posté si leurs publications sont de faible qualité. Il semble que cette requête puisse aider à valider mon ressenti sur quelqu’un et aussi donner une première indication sur le moment où quelqu’un ne commence pas bien.