Você tentou adicionar o ID do post à consulta?
Eu adicionei
count(r.post_id) as post_num em seu select declaração e deu os resultados esperados
. Para remover duplicatas, use
distinct . Você quer a contagem em relação à tabela de tags? Experimentar COUNT(distinct pt.post_id) AS post_count; ouCOUNT(distinct r.post_id) AS post_count