Questa è una versione SQL del Report della Bacheca per le Visualizzazioni di Pagina Consolidate.
Questo report SQL fornisce un conteggio giornaliero delle visualizzazioni di pagina da parte di utenti con accesso effettuato, utenti anonimi e crawler su un sito Discourse.
-- [params]
-- date :start_date
-- date :end_date
SELECT
ar.date::date AS "date",
SUM(ar.count) AS "Total Views",
SUM(CASE WHEN ar.req_type=6 THEN ar.count ELSE 0 END) AS "Crawler Views",
SUM(CASE WHEN ar.req_type=7 THEN ar.count ELSE 0 END) AS "Logged in User Views",
SUM(CASE WHEN ar.req_type=8 THEN ar.count ELSE 0 END) AS "Anonymous User 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
ORDER BY date
Spiegazione della Query SQL
La query opera sulla tabella application_requests, che registra vari tipi di richieste effettuate al forum. Si concentra su tre tipi specifici di richieste identificati dai valori req_type:
6: Visualizzazioni Crawler7: Visualizzazioni Utenti con Accesso Effettuato8: Visualizzazioni Utenti Anonimi
Ecco una spiegazione passo passo di ciò che fa la query:
- Parametri: La query accetta due parametri,
:start_datee:end_date, che consentono all’utente di specificare l’intervallo di date per il report. Entrambi i parametri di data accettano il formato dataAAAA-MM-GG. - Selezione: La query seleziona la data della richiesta (
ar.date) e la converte in un tipodate. Calcola inoltre le visualizzazioni totali e la ripartizione delle visualizzazioni per tipo (crawler, utente con accesso effettuato e utente anonimo) per ogni data nell’intervallo specificato. - Somma: Somma la colonna
countper ogni tipo di visualizzazione. Le istruzioniCASEvengono utilizzate per includere condizionalmente i conteggi nella somma in base alreq_type. - Filtraggio: La clausola
WHEREfiltra i record per includere solo quelli con valorireq_typedi 6, 7 o 8 e con date comprese tra:start_datee:end_datespecificati. - Raggruppamento: La query raggruppa i risultati per data, assicurando che i conteggi per ogni tipo di visualizzazione siano aggregati per giorno.
- Ordinamento: I risultati sono ordinati per data per fornire una visualizzazione cronologica del traffico.
Risultati di Esempio
| date | Total Views | Crawler Views | Logged in User Views | Anonymous User Views |
|---|---|---|---|---|
| 2023-11-18 | 5608 | 3052 | 565 | 1928 |
| 2023-11-19 | 9207 | 6564 | 470 | 2273 |
| 2023-11-20 | 6271 | 2631 | 1016 | 2924 |

