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

Olá, adoro a consulta “Usuários de Alta Qualidade nos Últimos Seis Meses”. Estou me perguntando… como escreveríamos uma consulta semelhante para mostrar os usuários de menor qualidade nos últimos seis meses? Alguém que postou muito, mas recebeu muito poucos curtidas, respostas, etc.

Tente remover o “DESC” desta linha:

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

Excelente, obrigado. Agradeço muito!

Também alterei essa parte " HAVING count(p.id) > 5" para obter resultados mais relevantes para minha comunidade. Vou continuar ajustando isso. Parece que nossa equipe de moderação está intervindo com as pessoas antes que postem demais, caso seus posts sejam de baixa qualidade. Essa consulta parece ajudar a validar minha percepção sobre alguém e também dar uma indicação precoce de quando alguém não está começando bem.