Mi capita abbastanza regolarmente di voler prendere uno dei report standard (oggi è Consolidated Pageviews) e approfondire un po’.
Invece di dover ricominciare da capo, sarebbe fantastico
se potessi passare dal report al suo SQL per iterare.
Mi capita abbastanza regolarmente di voler prendere uno dei report standard (oggi è Consolidated Pageviews) e approfondire un po’.
Invece di dover ricominciare da capo, sarebbe fantastico
se potessi passare dal report al suo SQL per iterare.
Non è costruito con SQL, ma va bene, possiamo derivarlo…
Ecco la guida generale su Meta:
Nello specifico: discourse/app/models/concerns/reports/consolidated_page_views.rb at main · discourse/discourse · GitHub
È costruito usando un modello Rails, ApplicationRequest, ad esempio:
[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>]
La tabella corrispondente di cui hai bisogno è application_requests (ma non la vedo esposta in Data Explorer, forse mi è sfuggita?)
I req_type in questo report sono:
page_view_logged_in
page_view_anon
page_view_crawler
È una normale somma e raggruppamento, quindi probabilmente potresti iniziare, dalla console 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')
per esempio
o l’equivalente SQL:
SELECT * FROM application_requests WHERE req_type IN (7, 8, 6) AND (date BETWEEN '11/14/2022' AND '11/17/2022')
Parte dell’aggregazione è già stata fatta per te poiché i dati si trovano in una colonna di conteggio.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.