تقرير لوحة التحكم - المستخدمون المتفاعلون يوميًا

هذا هو إصدار SQL من تقرير لوحة المعلومات للمستخدمين النشطين يوميًا.

سيقوم تقرير SQL بحساب عدد المستخدمين الفريدين الذين سجلوا إعجابهم أو نشروا على موقع ما كل يوم.

--[params]
-- date :start_date
-- date :end_date

SELECT 
  ua.created_at::date AS day,
  COUNT(DISTINCT ua.user_id) AS engaged_users
FROM user_actions ua
INNER JOIN topics t on t.id = ua.target_topic_id
WHERE ua.created_at::date BETWEEN :start_date AND :end_date
    AND ua.action_type IN (1, 4, 5, 12)
GROUP BY ua.created_at::date
ORDER BY ua.created_at::date ASC 

تفصيل الاستعلام:

  • معلمات التاريخ: يقبل الاستعلام معلمتين للتاريخ، :start_date و :end_date، مما يسمح لك بتحديد النطاق للتقرير.
  • الاختيار: يحدد تاريخ الإجراء (ua.created_at::date) ويحسب معرفات المستخدمين المميزة (COUNT(DISTINCT ua.user_id)) الذين قاموا بالإجراءات، ويطلق على هذا العدد اسم engaged_users.
  • مصدر البيانات: يسحب الاستعلام من جدول user_actions (ua) ويربطه بجدول topics (t) للتركيز على الإجراءات المتعلقة بالمواضيع.
  • أنواع الإجراءات: يقوم بتصفية الإجراءات لتشمل فقط تلك التي تحمل الأنواع 1، 4، 5، و 12. تتوافق أنواع الإجراءات هذه مع الأنشطة المحددة التالية:
    • 1: إعجاب
    • 4: موضوع جديد
    • 15: رد
    • 12: رسالة خاصة جديدة
  • التجميع والترتيب: يتم تجميع النتائج حسب تاريخ الإجراء وترتيبها بترتيب تصاعدي، مما يمنحك عرضًا زمنيًا للنشاط.

نتائج مثال

day engaged_users
2023-01-01 136
2023-01-02 124
2023-01-03 187
2023-01-04 287
2023-01-05 110
2023-01-06 95
2023-01-07 73
5 إعجابات

هذا مثير للاهتمام حقًا عند رؤيته مرتبًا. سيكون من الجيد ربما وجود إصدار يتضمن ردود الفعل والتصويت (استطلاعات الرأي، التصويت على المواضيع، التصويت على المنشورات - ربما حتى تعليقات التصويت على المنشورات). :thinking:

إعجابَين (2)