Rapport Tableau de bord - Vues du profil utilisateur

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_date et :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 date AAAA-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_trunc est utilisée pour tronquer l’horodatage viewed_at au 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 WHERE limite le décompte aux vues qui se sont produites entre les paramètres :start_date et :end_date, qui sont définis en haut de la requête.
  • Regroupement des résultats : La clause GROUP BY regroupe les résultats par jour tronqué afin que le nombre de vues soit agrégé par jour.
  • Sélection des résultats : L’instruction SELECT principale 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 BY garantit 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
2 « J'aime »