قائمة الرغبات: SQL للتقارير الجاهزة

أجد نفسي بشكل شبه منتظم أرغب في أخذ أحد التقارير القياسية (اليوم هو Consolidated Pageviews) والتعمق فيه قليلاً.

بدلاً من الاضطرار إلى البدء من الصفر، سيكون من المدهش :christmas_tree: :gift: إذا تمكنت من الانتقال من التقرير إلى استعلام SQL الخاص به للتكرار.

إعجابَين (2)

لم يتم بناؤه باستخدام SQL، ولكن لا بأس، يمكننا استخلاصه…

إليك الدليل العام على Meta:

على وجه التحديد: discourse/app/models/concerns/reports/consolidated_page_views.rb at main · discourse/discourse · GitHub

تم بناؤه باستخدام نموذج Rails، ApplicationRequest، على سبيل المثال:

[3] pry(main)> ApplicationRequest.last(10)
=> [#<ApplicationRequest:0x000055c8edcf99f8 id: 4798, date: Thu, 17 Nov 2022, req_type: "http_total", count: 3080>,
 #<ApplicationRequest:0x000055c8edcf9ac0 id: 4799, date: Thu, 17 Nov 2022, req_type: "http_background", count: 1014>,
 #<ApplicationRequest:0x000055c8edcf9bb0 id: 4800, date: Thu, 17 Nov 2022, req_type: "page_view_crawler", count: 539>,
 #<ApplicationRequest:0x000055c8edcf9c78 id: 4801, date: Thu, 17 Nov 2022, req_type: "http_2xx", count: 1929>,
 #<ApplicationRequest:0x000055c8edcf9d68 id: 4802, date: Thu, 17 Nov 2022, req_type: "http_4xx", count: 52>,
 #<ApplicationRequest:0x000055c8edcf9e30 id: 4803, date: Thu, 17 Nov 2022, req_type: "http_3xx", count: 85>,
 #<ApplicationRequest:0x000055c8edcf9f20 id: 4804, date: Thu, 17 Nov 2022, req_type: "page_view_anon", count: 40>,
 #<ApplicationRequest:0x000055c8edcf9fe8 id: 4805, date: Thu, 17 Nov 2022, req_type: "page_view_logged_in", count: 148>,
 #<ApplicationRequest:0x000055c8edcfa0d8 id: 4806, date: Thu, 17 Nov 2022, req_type: "page_view_logged_in_mobile", count: 134>,
 #<ApplicationRequest:0x000055c8edd00a00 id: 4807, date: Thu, 17 Nov 2022, req_type: "page_view_anon_mobile", count: 2>]

الجدول المقابل الذي تحتاجه هو application_requests (ولكنني لا أرى هذا معروضًا في Data Explorer، ربما فاتني؟)

أنواع req_type في هذا التقرير هي:

  page_view_logged_in
  page_view_anon
  page_view_crawler

إنها عملية جمع وتجميع منتظمة، لذا ربما يمكنك البدء بوحدة تحكم Rails:

ApplicationRequest.where(req_type:["page_view_logged_in", "page_view_anon", "page_view_crawler"]).where('date BETWEEN ? AND ?', '11/14/2022', '11/17/2022')

على سبيل المثال

أو ما يعادلها في SQL:

SELECT * FROM application_requests WHERE req_type IN (7, 8, 6) AND (date BETWEEN '11/14/2022' AND '11/17/2022')

تم بالفعل إجراء بعض التجميع لك لأن البيانات موجودة في عمود العد.

3 إعجابات

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.