هذا الموضوع يخبرني أي جدول يجب البحث فيه عن بيانات عدد المشاهدات وكيفية فهمها (ماذا يعني كل request_type).
استخدمت ذلك لكتابة بعض التقارير السنوية. كنت ألقي نظرة عليها اليوم وبدأت أتساءل عن الأرقام مقابل ما يتم الإبلاغ عنه في الصفحة الرئيسية للمسؤول.
لذلك بدأت في التعمق قليلاً. إليك ما تخبرني به استعلام قاعدة البيانات المباشر عن الأمس:
لا أعرف كيفية مطابقة آخر عددين من استعلامي، ولكن حتى لو تركتهم جانبًا (وهو ما يسعدني القيام به نظرًا لأنهم ضئيلون جدًا) لا أعرف كيفية مطابقة ما يجده استعلامي بما تقوله تقارير لوحة المعلومات.
تتجمع أنواع الطلبات 7 و 8 و 9 و 10 إلى 43.8 ألف. أضف الزواحف (النوع 6) وأنا عند 57.0 ألف.
هل من المفترض أن تعكس لوحة المعلومات الأنواع من 6 إلى 10 ويجب أن يُعزى الفرق بين 55.5 ألف و 57.0 ألف إلى اختلافات المنطقة الزمنية؟
أنواع الطلبات رمز 11 هي تلك التي تتم بواسطة API، والطلبات رمز 12 تتم بواسطة user API.
مقاييس النشاط تجمع المستخدمين المسجلين دخولهم (req_type: 7)، والمستخدمين المجهولين (req_type: 8)، والزواحف (req_type: 6). وهي نفس التي تم النظر فيها في الرسم البياني الأول في لوحة تحكم المسؤول “مشاهدات الصفحة المجمعة”.
أدناه مثال على الاستعلام لتقرير مشاهدات الصفحة المجمعة
SQL مشاهدات الصفحة المجمعة
-- [params]
-- date :start_date
-- date :end_date
SELECT
ar.date::date AS "date",
CASE
WHEN ar.req_type=6 THEN 'Crawlers'
WHEN ar.req_type=7 THEN 'Logged in users'
WHEN ar.req_type=8 THEN 'Anonymous users'
END user_type,
SUM(ar.count) AS views
FROM application_requests ar
WHERE req_type IN (6,7,8)
AND ar.date::date BETWEEN :start_date AND :end_date
GROUP BY "date", user_type
ORDER BY "date"
SUM مشاهدات الصفحة المجمعة
-- [params]
-- date :start_date
-- date :end_date
SELECT
ar.date::date AS "date",
SUM(ar.count) AS pageviews
FROM application_requests ar
WHERE req_type IN (6,7,8)
AND ar.date::date BETWEEN :start_date AND :end_date
GROUP BY "date"
ORDER BY "date" DESC