هذا هو إصدار 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 |