Statistiques sur les signalements de spam rapportés par l'automatisation du triage de l'IA

Cette erreur se produit parce qu’il n’y a eu aucun signalement de spam par @system avec lequel vous étiez d’accord ou en désaccord pendant cette période.
La requête essaie de diviser par le nombre total de signalements qui remplissent les conditions. Dans votre cas, c’est 0, donc ça casse.
Si vous voulez que la requête renvoie toujours un résultat, vous pouvez utiliser NULLIF pour vérifier cela afin d’obtenir NULL lorsqu’il n’y a rien à diviser.

-- [params]
-- date :start_date = 2025-01-01
-- date :end_date = 2025-05-30

SELECT 
    COUNT(*) AS total_flags,
    COUNT(*) FILTER (WHERE r.status = 1) AS approved_flags,
    COUNT(*) FILTER (WHERE r.status = 2) AS rejected_flags,
    ROUND(100.0 * COUNT(*) FILTER (WHERE r.status = 1) / NULLIF(COUNT(*), 0), 2) AS approved_percentage,
    ROUND(100.0 * COUNT(*) FILTER (WHERE r.status = 2) / NULLIF(COUNT(*), 0), 2) AS rejected_percentage
FROM 
    reviewables r
JOIN 
    post_actions pa ON pa.post_id = r.target_id AND r.target_type = 'Post'
WHERE
    pa.post_action_type_id = 8 -- ID pour spam (Signaler comme spam et masquer le message)
    AND r.created_at BETWEEN :start_date AND :end_date
    AND r.status IN (1, 2) -- Signalements acceptés et rejetés
    AND r.created_by_id = -1 -- ID de l'utilisateur système
2 « J'aime »