يوفر استعلام SQL هذا إحصائيات حول علامات البريد العشوائي التي تم الإبلاغ عنها بواسطة الأتمتة Discourse AI - AI triage. يقوم بحساب العدد الإجمالي للعلامات، وعدد الموافق عليها أو المرفوضة، والنسب المئوية المقابلة. هذا التقرير مفيد لفهم مدى فعالية اكتشاف البريد العشوائي الآلي في منتداك.
-- [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) / COUNT(*), 2) AS approved_percentage,
ROUND(100.0 * COUNT(*) FILTER (WHERE r.status = 2) / COUNT(*), 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 for spam (Flag as spam and hide post)
AND r.created_at BETWEEN :start_date AND :end_date
AND r.status IN (1, 2) -- Accepted and rejected flags
AND r.created_by_id = -1 -- System user ID
شرح استعلام SQL
- المعلمات: معلمات
:start_dateو:end_dateبتنسيقYYYY-MM-DDمع قيم افتراضية. - الربط: يربط جدول
reviewablesبجدولpost_actionsلضمان احتساب علامات البريد العشوائي التي مرت بعملية المراجعة فقط. - التصفية:
post_action_type_id = 8: يقتصر على علامات البريد العشوائي فقط.- التصفية حسب النطاق الزمني مع المعلمات المحددة.
status IN (1, 2): يشمل فقط العلامات التي تم حلها (الموافقة عليها أو رفضها).created_by_id = -1: يشمل فقط العلامات التي أنشأها المستخدم النظام (AI triage).
- التجميع:
total_flags: العدد الإجمالي لعلامات البريد العشوائي بواسطة النظام.approved_flags: عدد العلامات التي وافق عليها المستخدمون (الحالة = 1).rejected_flags: عدد العلامات التي رفضها المستخدمون (الحالة = 2).approved_percentage: نسبة العلامات التي تمت الموافقة عليها.rejected_percentage: نسبة العلامات التي تم رفضها.
نتائج مثال
| total_flags | approved_flags | rejected_flags | approved_percentage | rejected_percentage |
|---|---|---|---|---|
| 152 | 128 | 24 | 84.21 | 15.79 |