Número de tópicos por tag

Gostaria de poder obter uma lista de todas as tags e quantos novos tópicos/postagens foram criados para cada uma em um determinado período (digamos, no último mês). Alguém pode ajudar com a consulta?

Você poderia examinar os arquivos, suponho, mas, na minha opinião, é mais eficiente usar o menu na página de administração de plugins. Você deve ser capaz de ver várias tabelas que, ao serem selecionadas, exibem os nomes dos campos e informações do esquema.

Não estou no meu computador, mas o modelo contém:

# == Informações do Esquema
#
# Nome da tabela: topic_tags
#
#  id         :integer          não nulo, chave primária
#  topic_id   :integer          não nulo
#  tag_id     :integer          não nulo
#  created_at :datetime         não nulo
#  updated_at :datetime         não nulo
#
# Índices
#
#  index_topic_tags_on_topic_id_and_tag_id  (topic_id,tag_id) UNIQUE

Observe o “topic_id” e o “tag_id”; isso sugere que os nomes seguem o padrão “nome da tabela, sublinhado, nome do campo”.

A tabela de tags possui:

# == Informações do Esquema
#
# Nome da tabela: tags
#
#  id             :integer          não nulo, chave primária
#  name           :string           não nulo
#  topic_count    :integer          padrão(0), não nulo
#  created_at     :datetime         não nulo
#  updated_at     :datetime         não nulo
#  pm_topic_count :integer          padrão(0), não nulo
#  target_tag_id  :integer
#
# Índices
#
#  index_tags_on_lower_name  (lower((name)::text)) UNIQUE
#  index_tags_on_name        (name) UNIQUE

E deixarei com você a tarefa de examinar os campos das tabelas de tópicos.

Mas isso provavelmente está adiantando as coisas. Você conseguiu executar uma consulta muito simples em uma dessas tabelas, como uma espécie de “Olá, Explorador de Dados”? Qual foi?

Show, muito obrigado pelas dicas.
Consegui compilá-lo. Pode não ser perfeito, mas se alguém mais achar útil:

Novos tópicos por tag

-- [params]
-- int :months_ago = 0

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
    tags.name,
    count(1) as topic_count
FROM topics t
RIGHT JOIN topic_tags tt
    ON t.id = tt.topic_id
RIGHT JOIN tags tags
    ON tt.tag_id = tags.id
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 tt.topic_id IS NOT NULL
GROUP BY tags.name
ORDER BY topic_count DESC