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