Pelo que pude verificar, o Discourse não mantém um registro explícito de menções, mas ele rastreia os links adicionados aos tópicos. Uma menção a um grupo em uma postagem será registrada como o valor do campo url na tabela topic_links, no seguinte formato: "/groups/<nome_do_grupo>". A consulta a seguir deve fornecer algo próximo ao que você procura. Você precisará fornecer valores para os parâmetros start_date e end_date. Essas datas devem estar no formato aaaa-mm-dd. Por exemplo, para obter dados do último ano, insira 2020-01-01 como start_date e 2020-12-31 como end_date:
--[params]
-- date :start_date
-- date :end_date
WITH group_mentions AS (
SELECT
split_part(url, '/', 3) AS group_name
FROM topic_links tl
JOIN topics t ON t.id = tl.topic_id
WHERE internal = true
AND url LIKE '/groups/%'
AND t.deleted_at IS NULL
AND t.archetype = 'regular'
AND tl.created_at::date BETWEEN :start_date AND :end_date
)
SELECT
gm.group_name,
COUNT(gm.group_name) AS mention_count
FROM group_mentions gm
JOIN groups g ON g.name = gm.group_name
WHERE g.created_at::date <= :start_date
GROUP BY gm.group_name
ORDER BY mention_count DESC
A consulta está retornando apenas menções adicionadas a postagens regulares (inclui, no entanto, menções adicionadas a postagens sussurradas). Se você deseja que menções adicionadas a mensagens privadas também apareçam nos resultados, remova a linha AND t.archetype = 'regular' da primeira consulta.
Avise-me se isso não estiver retornando o tipo de dado que você procura. Terei prazer em responder às suas outras perguntas amanhã, caso ninguém o faça antes disso.