Obtenir le nombre de signalements récents par catégorie

Salut @tpsReports,

Je ne dispose pas d’une instance Discourse très robuste où je peux tester cela en profondeur, mais je pense que cette requête Data Explorer pourrait vous aider à aller dans la bonne direction. (Quelqu’un d’autre pourra probablement intervenir pour l’améliorer !)

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'

Dans cet exemple, j’ai spécifié que le temps depuis la création du signalement est de 20 minutes (ligne 6), comme vous l’avez indiqué dans votre exemple.
À la 7ème ligne, j’ai utilisé l’ID de catégorie 4, mais vous devrez utiliser l’ID de catégorie spécifique de la catégorie que vous souhaitez suivre.

Si vous souhaitez pouvoir faire référence à la catégorie par son nom, vous pourriez ajouter une autre jointure à la requête, elle ressemblerait alors à ceci :

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'

Remplacez ensuite General à la ligne 8 par le nom de votre catégorie. Gardez à l’esprit que les noms de catégories sont sensibles à la casse.

Faites-moi savoir si cela vous aide !

4 « J'aime »