# Rapport du tableau de bord - Pages vues consolidées

**URL:** <https://meta.discourse.org/t/dashboard-report-consolidated-pageviews/289263>\
**Category:** Data & reporting\
**Tags:** sql-query, dashboard-reports, dashboard-sql\
**Created:** [Décembre 19, 2023, 11:49 UTC](https://meta.discourse.org/t/dashboard-report-consolidated-pageviews/289263 "2023-12-19T23:49:06Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![SaraDev](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/saradev/32/335139_2.png) [@SaraDev](https://meta.discourse.org/u/SaraDev)\
**Post date:** [Décembre 19, 2023, 11:49 UTC](https://meta.discourse.org/t/dashboard-report-consolidated-pageviews/289263/1 "2023-12-19T23:49:07Z")

</div>

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.

```sql
-- [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’exploration
- `7` : Vues des utilisateurs connectés
- `8` : 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_date` et `: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 date `AAAA-MM-JJ`.
- **Sélection** : La requête sélectionne la date de la requête (`ar.date`) et la convertit en type `date`. 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 `count` pour chaque type de vue. Les instructions `CASE` sont utilisées pour inclure conditionnellement les comptes dans la somme en fonction du `req_type`.
- **Filtrage** : La clause `WHERE` filtre les enregistrements pour inclure uniquement ceux dont les valeurs `req_type` sont 6, 7 ou 8 et dont les dates se situent entre `:start_date` et `: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 |

---

_[View the full topic](https://meta.discourse.org/t/dashboard-report-consolidated-pageviews/289263)._
