Top 50 sujets actifs (et leurs catégories associées)

Top 50 des sujets actifs (et leurs catégories associées)

Renvoie les 50 sujets les plus actifs du mois. Il est basé sur le nombre de réponses créées pour un sujet au cours d’un mois donné. La requête accepte un paramètre months_ago, dont la valeur par défaut est 0 pour fournir des résultats pour le mois en cours.

-- [params]
-- int :months_ago = 1

WITH query_period AS (
SELECT
date_trunc('month', CURRENT_DATE) - INTERVAL ':months_ago months' as period_start,
date_trunc('month', CURRENT_DATE) - INTERVAL ':months_ago months' + INTERVAL '1 month' - INTERVAL '1 second' as period_end
)

SELECT
t.id as topic_id,
t.category_id,
COUNT(p.id) as reply_count
FROM topics t
JOIN posts p
ON t.id = p.topic_id
JOIN query_period qp
ON p.created_at >= qp.period_start
AND p.created_at <= qp.period_end
WHERE t.archetype = 'regular'
AND t.user_id > 0
GROUP BY t.id
ORDER BY COUNT(p.id) DESC, t.score DESC
LIMIT 50