إحصائيات حول إعلامات الرسائل غير المرغوب فيها التي أبلغت عنها أتمتة الفرز المدعومة بالذكاء الاصطناعي

يحدث هذا الخطأ لأنه لم تكن هناك علامات إبلاغ عن الرسائل غير المرغوب فيها بواسطة @system التي وافقت عليها أو اختلفت معها خلال تلك الفترة الزمنية.
تحاول الاستعلام القسمة على العدد الإجمالي للعلامات التي تستوفي الشروط. في حالتك هذه هو 0، لذلك يتعطل.
إذا كنت تريد أن يعيد الاستعلام نتيجة، يمكنك استخدام NULLIF للتحقق من ذلك حتى تحصل على NULL عندما لا يكون هناك شيء للقسمة.

-- [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 -- معرّف للرسائل غير المرغوب فيها (الإبلاغ كرسالة غير مرغوب فيها وإخفاء المنشور)
    AND r.created_at BETWEEN :start_date AND :end_date
    AND r.status IN (1, 2) -- العلامات المقبولة والمرفوضة
    AND r.created_by_id = -1 -- معرّف مستخدم النظام
إعجابَين (2)