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
11 „Gefällt mir“
Hallo, ich liebe die Abfrage „Top-Qualitätsnutzer der letzten sechs Monate". Ich frage mich, wie man eine ähnliche Abfrage schreiben könnte, um die Nutzer mit der geringsten Qualität der letzten sechs Monate anzuzeigen? Jemand, der viel gepostet hat, aber nur sehr wenige Likes, Antworten usw. erhalten hat.
Versuche, das „DESC" aus dieser Zeile zu entfernen:
ORDER BY sum(p.score) / count(p)
3 „Gefällt mir“
Ausgezeichnet, vielen Dank! Ich schätze das sehr!
Ich habe auch „ HAVING count(p.id) > 5" geändert, um Ergebnisse zu erhalten, die für meine Community relevanter sind. Ich werde weiter daran feilen. Es scheint, als würde unser Moderatorenteam eingreifen, bevor jemand zu oft gepostet hat, wenn die Beiträge von geringer Qualität sind. Dieser Abfrage scheint mir dabei zu helfen, mein Gefühl bezüglich einer Person zu bestätigen und auch einen frühen Eindruck davon zu bekommen, wenn jemand nicht gut startet.
1 „Gefällt mir“