Ho adattato un report per creare questa query, per vedere quali utenti hanno pubblicato più spesso X mesi fa e quanti utenti in totale hanno pubblicato in quel periodo.
-- [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
ua.user_id,
count(1) AS post_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
AND u.admin = 'f'
AND u.moderator = 'f'
GROUP BY ua.user_id
ORDER BY post_count DESC
Ma sto faticando a ottenere quest’ultimo dato: il numero totale di utenti che hanno pubblicato nel periodo indicato. Penso di aver bisogno semplicemente di un conteggio degli utenti inclusi nel report. Sarei grato se qualcuno avesse qualche suggerimento.
Modifica - Dimenticate, vedo che posso ottenerlo direttamente dal numero totale di risultati -
