تقرير لوحة المعلومات - أعلى مصادر الإحالة

هذا هو إصدار SQL لتقرير لوحة المعلومات للمحيلين الأعلى

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

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

SELECT
    il.user_id,
    COUNT(*) Clicks,
    COUNT(DISTINCT p.topic_id) Topics
FROM incoming_links il
INNER JOIN posts p ON p.id = il.post_id
WHERE il.created_at::date BETWEEN :start_date AND :end_date
    AND il.user_id > 0
    GROUP BY il.user_id
ORDER BY 2 DESC

شرح استعلام SQL

يقوم استعلام SQL المستخدم لهذا التقرير بتنفيذ الإجراءات التالية:

  • يقوم بتصفية سجلات الروابط الواردة (incoming_links) لتضمين تلك التي تم إنشاؤها فقط ضمن النطاق الزمني المحدد (:start_date إلى :end_date).
  • يضمن أن الروابط الواردة مرتبطة بمستخدمين صالحين (باستثناء المستخدمين النظاميين أو المجهولين الذين لديهم user_id < 0).
  • يربط جدول incoming_links بجدول posts لربط كل نقرة رابط بالموضوع المقابل.
  • يقوم بتجميع النتائج حسب user_id لتجميع البيانات لكل مستخدم.
  • يحسب العدد الإجمالي للنقرات على الروابط الواردة (Clicks) وعدد الموضوعات المميزة (Topics) لكل مستخدم.
  • يقوم بترتيب النتائج حسب العدد الإجمالي للنقرات بترتيب تنازلي لتحديد أفضل المساهمين.

المعلمات

  • :start_date: بداية النطاق الزمني لإنشاء التقرير.
  • :end_date: نهاية النطاق الزمني لإنشاء التقرير.

تقبل كلتا معلمتي التاريخ تنسيق YYYY-MM-DD.

نتائج مثال

المستخدم النقرات الموضوعات
username_1 5241 97
username_2 1256 14
username_3 1242 12
4 إعجابات