Nuevos temas por categoría (por mes)

Nuevos temas por categoría (por mes)

Devuelve el número de nuevos temas creados en cada categoría para un mes dado, ordenados por topic_count. La consulta acepta un parámetro ‘meses atrás’, con un valor predeterminado de 0 para proporcionar los resultados del mes actual.

-- [parámetros]
-- int :meses_atras = 1

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

SELECT
    t.category_id,
    count(1) as topic_count
FROM topics t
RIGHT JOIN query_period qp
    ON t.created_at >= qp.period_start
        AND t.created_at <= qp.period_end
WHERE t.user_id > 0
    AND t.category_id IS NOT NULL
GROUP BY t.category_id
ORDER BY topic_count DESC