Usamos este en mi comunidad para ver los usuarios más activos en los últimos 30 días.
SELECT
u.username,
COUNT(c.*) AS cnt
FROM
chat_messages AS c
LEFT JOIN users AS u ON c.user_id = u.id
WHERE c.created_at >= CURRENT_TIMESTAMP - INTERVAL '30 days'
GROUP BY u.username
ORDER BY cnt DESC