Ceci est une version SQL du rapport de tableau de bord pour les vues de profil utilisateur.
Ce rapport de tableau de bord génère des statistiques sur le nombre total de vues de profil utilisateur par jour dans une plage de dates spécifiée.
-- [params]
-- date :start_date = 2024-01-05
-- date :end_date = 2024-02-06
WITH profile_views_per_day AS (
SELECT
date_trunc('day', viewed_at) AS day,
COUNT(*) AS views
FROM user_profile_views
WHERE viewed_at >= :start_date AND viewed_at <= :end_date
GROUP BY day
)
SELECT
day::date,
views
FROM profile_views_per_day
ORDER BY day
Explication de la requête SQL
Voici une explication du fonctionnement de la requête :
- Paramètres : La requête accepte deux paramètres,
:start_dateet:end_date, qui permettent à 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. - Expression de table commune (CTE) : La requête commence par une CTE nommée
profile_views_per_day. Il s’agit d’un ensemble de résultats temporaire que nous utiliserons dans la requête principale. - Troncature de date : À l’intérieur de la CTE, la fonction
date_truncest utilisée pour tronquer l’horodatageviewed_atau jour près. Cela signifie que, quelle que soit l’heure à laquelle un profil a été consulté, il sera compté sur la base de la date seule. - Comptage des vues : La fonction
COUNT(*)compte le nombre de vues de profil pour chaque jour. - Filtrage par plage de dates : La clause
WHERElimite le décompte aux vues qui se sont produites entre les paramètres:start_dateet:end_date, qui sont définis en haut de la requête. - Regroupement des résultats : La clause
GROUP BYregroupe les résultats par jour tronqué afin que le nombre de vues soit agrégé par jour. - Sélection des résultats : L’instruction
SELECTprincipale récupère les résultats de la CTE. Elle sélectionne le jour tronqué (converti en type date) et le nombre de vues pour ce jour. - Tri des résultats : Enfin, la clause
ORDER BYgarantit que les résultats sont présentés dans l’ordre chronologique par jour.
Exemple de résultats
| jour | vues |
|---|---|
| 2024-01-05 | 263 |
| 2024-01-06 | 374 |
| 2024-01-07 | 272 |
| 2024-01-08 | 409 |
| 2024-01-09 | 606 |