Acho que algo assim lhe daria os números que você procura:
-- [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 "Mês",
ms.total_topics AS "Todos os Tópicos",
ms.total_posts AS "Todos os Posts",
ms.non_staff_posts AS "Posts de não-staff",
ROUND(ms.non_staff_posts * 100.0 / NULLIF(ms.total_posts, 0),1) || '%' AS "Posts de não-staff (% do total)",
ms.non_staff_posts / NULLIF(ms.total_topics, 0) AS "Média de posts de não-staff por tópico",
ms.non_staff_users AS "Usuários de não-staff que postaram",
ms.staff_posts AS "Posts de staff",
ROUND(ms.staff_posts * 100.0 / NULLIF(ms.total_posts, 0),1) || '%' AS "Posts de staff (% do total)",
ms.staff_posts / NULLIF(ms.total_topics, 0) AS "Média de posts de staff por tópico",
ms.staff_users AS "Usuários de staff que postaram"
FROM month_stats ms
ORDER BY "Mês"
O que lhe daria algo como isto:
E um pouco de texto extra para completar: 
Esta consulta foi projetada para fornecer um resumo estatístico mensal da atividade do fórum, focando especificamente na distinção entre as contribuições de usuários ‘staff’ e ‘não-staff’ dentro de um determinado período. As métricas calculadas incluem o número total de tópicos criados, todos os posts feitos, o número de usuários únicos não-staff que postaram, a contagem e a porcentagem de posts feitos por não-staff, a média de posts de não-staff por tópico, bem como os números correspondentes para membros da staff. A informação destina-se a fornecer insights sobre o engajamento do usuário, a geração de conteúdo e a taxa de participação de membros staff versus não-staff nas discussões do fórum. A consulta garante precisão ao considerar apenas tópicos ‘regulares’ (não-PM) e exclui quaisquer posts ou tópicos excluídos, sussurros/posts pequenos/ações de moderador e posts de usuários do sistema, dentro do intervalo de datas especificado.
Para este, o critério ‘staff’ é que eles estão no grupo automático @staff, que inclui administradores e moderadores - embora isso possa ser ajustado para atingir apenas os administradores, ou até mesmo um grupo personalizado de funcionários que tecnicamente não são ‘staff do site’ como tal. Se você deseja definitivamente excluir moderadores, pode trocar o group_id no início para ‘1’. 
É esse tipo de coisa que você está procurando?