Creo que algo como esto te daría los números que buscas:
-- [params]
-- date :start_date
-- date :end_date
WITH staff_data AS (
SELECT user_id, true as is_staff
FROM group_users
WHERE group_id = 3
),
month_stats AS (
SELECT
date_trunc('month', p.created_at)::date AS month,
COUNT(*) FILTER (WHERE p.post_number = 1) AS total_topics,
COUNT(*) FILTER (WHERE p.post_number <> 1) AS total_posts,
COUNT(DISTINCT p.user_id) FILTER (WHERE p.post_number <> 1 AND is_staff IS NOT TRUE) AS non_staff_users,
COUNT(*) FILTER (WHERE p.post_number <> 1 AND is_staff IS NOT TRUE) AS non_staff_posts,
COUNT(DISTINCT p.user_id) FILTER (WHERE p.post_number <> 1 AND is_staff) AS staff_users,
COUNT(*) FILTER (WHERE p.post_number <> 1 AND is_staff) AS staff_posts
FROM posts p
LEFT JOIN topics t ON t.id = p.topic_id
LEFT JOIN staff_data s ON p.user_id = s.user_id
WHERE p.created_at::date BETWEEN :start_date AND :end_date
AND t.archetype = 'regular'
AND t.deleted_at IS NULL
AND p.deleted_at IS NULL
AND p.post_type = 1
AND p.user_id > 0
GROUP BY month
)
SELECT
ms.month AS "Mes",
ms.total_topics AS "Todos los temas",
ms.total_posts AS "Todos los posts",
ms.non_staff_posts AS "Posts no del personal",
ROUND(ms.non_staff_posts * 100.0 / NULLIF(ms.total_posts, 0),1) || '%' AS "Posts no del personal (% del total)",
ms.non_staff_posts / NULLIF(ms.total_topics, 0) AS "Posts promedio de no personal por tema",
ms.non_staff_users AS "Usuarios no del personal que publicaron",
ms.staff_posts AS "Posts del personal",
ROUND(ms.staff_posts * 100.0 / NULLIF(ms.total_posts, 0),1) || '%' AS "Posts del personal (% del total)",
ms.staff_posts / NULLIF(ms.total_topics, 0) AS "Posts promedio del personal por tema",
ms.staff_users AS "Usuarios del personal que publicaron"
FROM month_stats ms
ORDER BY "Mes"
Lo que te daría algo como esto:
Y un poco de texto adicional para completar: 
Esta consulta está diseñada para proporcionar un resumen estadístico mensual de la actividad del foro, centrándose específicamente en la distinción entre las contribuciones de los usuarios ‘del personal’ y ‘no del personal’ dentro de un período de tiempo determinado. Las métricas calculadas incluyen el número total de temas creados, todos los posts realizados, el número de usuarios únicos no del personal que publicaron, el recuento y el porcentaje de posts realizados por no personal, el número promedio de posts de no personal por tema, así como las cifras correspondientes para los miembros del personal. La información está destinada a ofrecer información sobre la participación de los usuarios, la generación de contenido y la tasa de participación del personal frente a los miembros no del personal en las discusiones del foro. La consulta garantiza la precisión al considerar solo temas ‘regulares’ (no privados) y excluye cualquier post o tema eliminado, susurros/posts pequeños/acciones de moderador, y posts de usuarios del sistema, dentro del rango de fechas especificado.
Para esto, el criterio de ‘personal’ es que estén en el grupo automático @staff, que incluye tanto a administradores como a moderadores, aunque esto se puede ajustar para dirigirse solo a los administradores, o incluso a un grupo personalizado de empleados que técnicamente no son ‘personal del sitio’ como tal. Si deseas excluir definitivamente a los moderadores, puedes cambiar el group_id al principio por ‘1’. 
¿Es ese el tipo de cosa que buscas?