تقرير لوحة التحكم - مشاهدات ملف المستخدم

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

يقوم تقرير لوحة المعلومات هذا بإنشاء إحصائيات حول العدد الإجمالي لعروض ملفات تعريف المستخدمين يوميًا ضمن نطاق تاريخي محدد.

-- [params]
-- date :start_date = 2024-01-05
-- date :end_date = 2024-02-06

WITH profile_views_per_day AS (
  SELECT
    date_trunc('day', viewed_at) AS day,
    COUNT(*) AS views
  FROM user_profile_views
  WHERE viewed_at >= :start_date AND viewed_at <= :end_date
  GROUP BY day
)
SELECT
  day::date,
  views
FROM profile_views_per_day
ORDER BY day

شرح استعلام SQL

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

  • المعلمات: يقبل الاستعلام معلمتين، :start_date و :end_date، اللتين تسمحان للمستخدم بتحديد نطاق التاريخ للتقرير. تقبل كلتا معلمتي التاريخ تنسيق التاريخ YYYY-MM-DD.
  • تعبير الجدول المشترك (CTE): يبدأ الاستعلام بـ CTE يسمى profile_views_per_day. هذه مجموعة نتائج مؤقتة سنستخدمها في الاستعلام الرئيسي.
  • اقتطاع التاريخ: داخل CTE، يتم استخدام الدالة date_trunc لاقتطاع الطابع الزمني viewed_at إلى اليوم. هذا يعني أنه بغض النظر عن وقت عرض الملف الشخصي، فسيتم احتسابه على أساس التاريخ وحده.
  • حساب المشاهدات: تحسب الدالة COUNT(*) عدد مشاهدات الملف الشخصي لكل يوم.
  • التصفية حسب نطاق التاريخ: يقيد شرط WHERE العد ليشمل فقط المشاهدات التي حدثت بين معلمتي :start_date و :end_date، والتي تم تعيينها في أعلى الاستعلام.
  • تجميع النتائج: تقوم عبارة GROUP BY بتجميع النتائج حسب اليوم المقتطع بحيث يتم تجميع عدد المشاهدات لكل يوم.
  • تحديد النتائج: يحدد بيان SELECT الرئيسي النتائج من CTE. يحدد اليوم المقتطع (محوّل إلى نوع تاريخ) وعدد المشاهدات لهذا اليوم.
  • ترتيب النتائج: أخيرًا، تضمن عبارة ORDER BY تقديم النتائج بترتيب زمني حسب اليوم.

نتائج مثال

day views
2024-01-05 263
2024-01-06 374
2024-01-07 272
2024-01-08 409
2024-01-09 606
إعجابَين (2)