Ciao @tpsReports,
Non dispongo di un’istanza Discourse molto robusta dove poter testare a fondo, ma penso che questa query di Data Explorer possa indirizzarti nella giusta direzione. (Qualcun altro potrà probabilmente intervenire per migliorarla!)
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'
In questo esempio, ho specificato il tempo trascorso dalla creazione del flag a 20 minuti (riga 6), come hai indicato nel tuo esempio.
Nella settima riga, ho utilizzato l’ID della categoria 4, ma dovrai utilizzare l’ID specifico della categoria che desideri monitorare.
Se desideri poter fare riferimento alla categoria per nome, potresti aggiungere un altro join alla query, in modo che appaia così:
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'
Quindi sostituisci dove ho usato General all’ottava riga con il nome della tua categoria. Tieni presente che i nomi delle categorie fanno distinzione tra maiuscole e minuscole.
Fammi sapere se questo ti è d’aiuto!