Ceci est une version SQL du rapport de tableau de bord pour les vues de page consolidées.
Ce rapport SQL fournit un décompte quotidien des vues de page des utilisateurs connectés, des utilisateurs anonymes et des robots d’exploration sur un site 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
Explication de la requête SQL
La requête opère sur la table application_requests, qui enregistre différents types de requêtes effectuées sur le forum. Elle se concentre sur trois types spécifiques de requêtes identifiés par les valeurs req_type :
6: Vues des robots d’exploration7: Vues des utilisateurs connectés8: Vues des utilisateurs anonymes
Voici une explication étape par étape de ce que fait la requête :
- Paramètres : La requête accepte deux paramètres,
:start_dateet:end_date, permettant à l’utilisateur de spécifier la plage de dates pour le rapport. Les deux paramètres de date acceptent le format de dateAAAA-MM-JJ. - Sélection : La requête sélectionne la date de la requête (
ar.date) et la convertit en typedate. Elle calcule également le total des vues et la répartition des vues par type (robot d’exploration, utilisateur connecté et utilisateur anonyme) pour chaque date dans la plage spécifiée. - Sommation : Elle additionne la colonne
countpour chaque type de vue. Les instructionsCASEsont utilisées pour inclure conditionnellement les comptes dans la somme en fonction dureq_type. - Filtrage : La clause
WHEREfiltre les enregistrements pour inclure uniquement ceux dont les valeursreq_typesont 6, 7 ou 8 et dont les dates se situent entre:start_dateet:end_date. - Regroupement : La requête regroupe les résultats par date, garantissant que les décomptes pour chaque type de vue sont agrégés par jour.
- Tri : Les résultats sont triés par date pour fournir une vue chronologique du trafic.
Résultats d’exemple
| 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 |

