Elenco degli utenti con il maggior numero di argomenti/thread risolti
Modifica within_number_of_months per indicare il numero di mesi su cui eseguire la query.
Quindi, 3 mostrerà i risultati degli ultimi tre mesi, e così via.
-- [params]
-- int :within_number_of_months = 1
WITH query_period AS (
SELECT
date_trunc('month', CURRENT_DATE) - INTERVAL ':within_number_of_months months' as period_start,
date_trunc('month', CURRENT_DATE) as period_end
)
SELECT
ua.user_id,
count(1) AS solved_count
FROM user_actions ua
INNER JOIN query_period qp
ON ua.created_at >= qp.period_start
AND ua.created_at <= qp.period_end
INNER JOIN users u
ON u.id = ua.user_id
WHERE ua.action_type = 15
-- AND u.admin = 'f'
-- AND u.moderator = 'f'
GROUP BY ua.user_id
ORDER BY solved_count DESC