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