Количество тем по тегу

Я хотел бы получать список всех тегов и количество новых тем/сообщений, созданных по каждому из них за определённый период (например, за последний месяц).
Может ли кто-нибудь помочь с запросом?

Вы могли бы, я полагаю, просматривать файлы вручную, но, на мой взгляд, эффективнее использовать меню на странице администрирования плагинов. Вы должны увидеть множество таблиц, при выборе которых отображаются имена полей и информация о схеме.

Я сейчас не за своим рабочим столом, но в модели есть:

# == Schema Information
#
# Table name: topic_tags
#
#  id         :integer          not null, primary key
#  topic_id   :integer          not null
#  tag_id     :integer          not null
#  created_at :datetime         not null
#  updated_at :datetime         not null
#
# Indexes
#
#  index_topic_tags_on_topic_id_and_tag_id  (topic_id,tag_id) UNIQUE 

Обратите внимание на «topic_id» и «tag_id»: это намекает, что имена формируются как «имя таблицы, нижнее подчеркивание, имя поля».

В таблице тегов есть:

# == Schema Information
#
# Table name: tags
#
#  id             :integer          not null, primary key
#  name           :string           not null
#  topic_count    :integer          default(0), not null
#  created_at     :datetime         not null
#  updated_at     :datetime         not null
#  pm_topic_count :integer          default(0), not null
#  target_tag_id  :integer
#
# Indexes
#
#  index_tags_on_lower_name  (lower((name)::text)) UNIQUE
#  index_tags_on_name        (name) UNIQUE

А изучение полей таблицы тем я оставляю на ваше усмотрение.

Но, возможно, мы забегаем вперёд. Удалось ли вам выполнить очень простой запрос к одной из этих таблиц, своего рода «Привет, исследователь данных»? Какой именно?

Отлично, большое спасибо за подсказки.
Мне удалось собрать это. Возможно, не идеально, но если кому-то ещё это пригодится:

Новые темы по тегам

-- [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