هذا هو إصدار SQL من تقرير لوحة المعلومات للمشرفين على الإشعارات.
يقدم تقرير لوحة المعلومات هذا عددًا يوميًا للرسائل الخاصة المرسلة إلى المشرفين بنوع فرعي للإشعار notify_moderators. تساعد هذه الرؤية المسؤولين على فهم فترات الطلب المرتفع على انتباه المشرفين وقد تشير إلى وقت مواجهة المستخدمين لمشكلات تتطلب مساعدة من المشرفين.
-- [params]
-- date :start_date = 2023-12-15
-- date :end_date = 2024-01-16
SELECT
DATE(created_at) AS day,
COUNT(1) AS notifications_count
FROM topics
WHERE archetype = 'private_message'
AND subtype = 'notify_moderators'
AND created_at BETWEEN :start_date AND :end_date
AND deleted_at IS NULL
AND user_id > 0
GROUP BY DATE(created_at)
ORDER BY day
شرح استعلام SQL
يعمل الاستعلام عن طريق استخراج البيانات من جدول topics - على وجه التحديد، تلك التي تتأهل كرسائل خاصة للمشرفين ضمن إطار زمني معين. دعنا نفصلها:
- معلمات التاريخ:
- يقبل الاستعلام معلمتين،
:start_dateو:end_date، اللتين تحددان نطاق التاريخ للتقرير. تقبل كلتا معلمتي التاريخ تنسيق التاريخYYYY-MM-DD.
- يقبل الاستعلام معلمتين،
- الاختيار والعد:
DATE(created_at)يحول الطابع الزمنيcreated_atإلى تنسيق تاريخ ويسميهday. هذا يسمح بتجميع الرسائل وعدها حسب اليوم الذي تم إنشاؤها فيه.- يُستخدم
COUNT(1)لعد عدد الإدخالات لكل يوم، وتسمية هذا العدد باسمnotifications_count.
- معايير التصفية:
- يقوم الاستعلام بتصفية الإدخالات فقط حيث يكون
archetypeهو'private_message'، مما يضمن أننا ننظر فقط إلى الرسائل وليس إلى أنواع أخرى من المواضيع. - يقتصر
subtypeعلى'notify_moderators'، مما يعزل الحالات التي يقوم فيها المستخدمون بإخطار المشرفين أو طلب المساعدة منهم. - يتحقق من أن الطابع الزمني
created_atللرسالة يقع بين:start_dateو:end_dateالمحددين. - يتم استبعاد الرسائل التي تم حذفها (
deleted_at IS NULL) من العد لضمان أن التقرير يعكس فقط الاتصالات النشطة. - أخيرًا، يضمن أن الرسائل مرتبطة بمستخدم صالح عن طريق التأكد من أن
user_id > 0.
- يقوم الاستعلام بتصفية الإدخالات فقط حيث يكون
- التجميع والترتيب:
- يستخدم الاستعلام
GROUP BY DATE(created_at)لتجميع النتائج حسب كل يوم ضمن النطاق الزمني المحدد. - ثم يقوم بترتيب النتائج زمنيًا باستخدام
ORDER BY day، مما يجعل التقرير سهل القراءة والتفسير.
- يستخدم الاستعلام
نتائج مثال
| day | notifications_count |
|---|---|
| 2023-12-17 | 3 |
| 2023-12-18 | 1 |
| 2023-12-21 | 1 |
| 2023-12-23 | 2 |
| 2023-12-26 | 1 |