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

هذا هو إصدار SQL لتقرير لوحة المعلومات لزيارات المستخدم وزيارات المستخدم (الجوال).

يوفر تقرير لوحة المعلومات هذا رؤى حول تفاعل المستخدم من خلال تتبع زيارات المستخدم اليومية. يمكن للمسؤولين تصفية البيانات بناءً على النطاق الزمني، وعضوية المجموعة، ونوع الجهاز (جوال أو غير جوال).

يمكن أن يساعد فهم أنماط زيارات المستخدم المسؤولين على اتخاذ قرارات مستنيرة لتعزيز تفاعل المستخدم وصحة المجتمع.

-- [params]
-- date :start_date = 2024-01-06
-- date :end_date = 2024-02-07
-- null text :group_name
-- boolean :mobile_views = false

SELECT uv.visited_at AS date,
       COUNT(DISTINCT uv.user_id) AS visits_count
FROM user_visits uv
LEFT JOIN group_users gu ON gu.user_id = uv.user_id
LEFT JOIN groups g ON g.id = gu.group_id AND (:group_name IS NULL OR g.name = :group_name)
WHERE uv.visited_at BETWEEN :start_date AND :end_date
AND (:group_name IS NULL OR g.name IS NOT NULL)
AND (:mobile_views = false OR uv.mobile = true)
GROUP BY uv.visited_at
ORDER BY uv.visited_at ASC

شرح استعلام SQL

يعمل استعلام SQL عن طريق تحديد البيانات من جدول user_visits، الذي يسجل زيارات كل مستخدم للمنصة. يتم شرح المكونات الرئيسية للاستعلام أدناه:

  • المعلمات (Parameters)
    • يحدد :start_date و :end_date النطاق الزمني للتقرير. تقبل كلتا معلمتي التاريخ تنسيق التاريخ YYYY-MM-DD.
    • يسمح :group_name بالتصفية حسب اسم مجموعة مستخدم محددة. إذا لم يتم تحديده، يتم تضمين البيانات لجميع المجموعات.
    • يحدد :mobile_views ما إذا كان سيتم تضمين زيارات أجهزة الجوال فقط (true) أو جميع الزيارات (false).
  • اختيار البيانات وعمليات الربط (Data Selection and Join Operations):
    • يحدد الاستعلام تاريخ الزيارة (visited_at) ويحسب معرفات المستخدمين المميزة (user_id) لحساب عدد الزيارات الفريدة لكل يوم.
    • يجري LEFT JOIN مع جدول group_users لربط زيارات المستخدم بالمجموعات الخاصة بهم، يليه LEFT JOIN آخر مع جدول groups للتصفية حسب اسم المجموعة المحدد، إن وجد.
  • التصفية (Filtering):
    • يطبق شرط WHERE عوامل التصفية بناءً على المعلمات المدخلة:
      • يضمن تضمين الزيارات ضمن النطاق الزمني المحدد فقط.
      • يقوم بالتصفية حسب اسم المجموعة إذا تم تحديده، ويضمن حساب الزيارات للمستخدمين الذين ينتمون إلى تلك المجموعة.
      • يتضمن زيارات الجوال فقط إذا تم تعيين المعلمة :mobile_views إلى true.
  • التجميع والترتيب (Grouping and Ordering):
    • يقوم الاستعلام بتجميع النتائج حسب تاريخ الزيارة (visited_at) لتجميع عدد الزيارات لكل يوم.
    • يقوم بترتيب النتائج بترتيب تصاعدي حسب التاريخ، مما يوفر عرضًا زمنيًا لزيارات المستخدم.

نتائج مثال

date visits_count
2024-01-06 67
2024-01-07 71
2024-01-08 88
2024-01-09 79
2024-01-10 78
3 إعجابات

تم تقسيم 6 مشاركات إلى موضوع جديد: تغيير وصف “زيارات المستخدم” لجعله أوضح أنه يشير إلى المستخدمين المسجلين