Obter contagem de sinalizações recentes em uma categoria específica

Olá @tpsReports,

Não tenho uma instância robusta do Discourse disponível onde possa testar isso completamente, mas acho que esta consulta do Data Explorer pode te ajudar a ir na direção certa. (Alguém provavelmente poderá dar uma sugestão para aprimorá-la!)

SELECT count(*)
FROM post_actions AS pac
JOIN posts p on p.id = pac.post_id
JOIN topics t on t.id = p.topic_id
WHERE pac.post_action_type_id in ('3','4','7','8')
AND pac.created_at >= NOW() - INTERVAL '20 MINUTE'
AND t.category_id = '4'

Neste exemplo, especifiquei o tempo desde a criação da bandeira como 20 minutos (linha 6), pois foi o que você deu em seu exemplo.
Na 7ª linha, usei o ID da categoria 4, mas você precisará usar o ID específico da categoria que deseja rastrear.

Se você quiser poder se referir à categoria pelo nome, pode adicionar outra junção à consulta, ficando assim:

SELECT count(*)
FROM post_actions AS pac
JOIN posts p on p.id = pac.post_id
JOIN topics t on t.id = p.topic_id
JOIN categories c on c.id = t.category_id
WHERE pac.post_action_type_id in ('3','4','7','8')
AND pac.created_at >= NOW() - INTERVAL '20 MINUTE'
AND c.name = 'General'

Em seguida, substitua onde usei General na linha 8 pelo nome da sua categoria. Lembre-se de que os nomes das categorias diferenciam maiúsculas de minúsculas.

Por favor, me diga se isso ajuda!

4 curtidas