Rapport du tableau de bord - Visites des utilisateurs

Ceci est une version SQL du rapport de tableau de bord pour les visites d’utilisateurs et les visites d’utilisateurs (mobiles).

Ce rapport de tableau de bord fournit des informations sur l’engagement des utilisateurs en suivant les visites quotidiennes des utilisateurs. Les administrateurs peuvent filtrer les données en fonction de la plage de dates, de l’appartenance à un groupe et du type d’appareil (mobile ou non mobile).

Comprendre les modèles de visites des utilisateurs peut aider les administrateurs à prendre des décisions éclairées pour améliorer l’engagement des utilisateurs et la santé de la communauté.

-- [params]
-- date :start_date = 2024-01-06
-- date :end_date = 2024-02-07
-- null text :group_name
-- boolean :mobile_views = false

SELECT uv.visited_at AS date,
       COUNT(DISTINCT uv.user_id) AS visits_count
FROM user_visits uv
LEFT JOIN group_users gu ON gu.user_id = uv.user_id
LEFT JOIN groups g ON g.id = gu.group_id AND (:group_name IS NULL OR g.name = :group_name)
WHERE uv.visited_at BETWEEN :start_date AND :end_date
AND (:group_name IS NULL OR g.name IS NOT NULL)
AND (:mobile_views = false OR uv.mobile = true)
GROUP BY uv.visited_at
ORDER BY uv.visited_at ASC

Explication de la requête SQL

La requête SQL fonctionne en sélectionnant des données de la table user_visits, qui enregistre chaque visite d’un utilisateur sur la plateforme. Les principaux composants de la requête sont expliqués ci-dessous :

  • Paramètres
    • :start_date et :end_date définissent la plage de dates pour le rapport. Les deux paramètres de date acceptent le format de date AAAA-MM-JJ.
    • :group_name permet de filtrer par le nom d’un groupe d’utilisateurs spécifique. S’il n’est pas spécifié, les données de tous les groupes sont incluses.
    • :mobile_views détermine s’il faut inclure uniquement les visites sur appareils mobiles (true) ou toutes les visites (false).
  • Sélection de données et opérations de jointure :
    • La requête sélectionne la date de visite (visited_at) et compte les identifiants d’utilisateur distincts (user_id) pour calculer le nombre de visites uniques par jour.
    • Elle effectue une LEFT JOIN avec la table group_users pour associer les visites des utilisateurs à leurs groupes respectifs, suivie d’une autre LEFT JOIN avec la table groups pour filtrer par le nom de groupe spécifié, le cas échéant.
  • Filtrage :
    • La clause WHERE applique des filtres basés sur les paramètres d’entrée :
      • Elle garantit que seules les visites dans la plage de dates spécifiée sont incluses.
      • Elle filtre par nom de groupe si spécifié, et garantit que les visites sont comptées pour les utilisateurs appartenant à ce groupe.
      • Elle inclut uniquement les visites mobiles si le paramètre :mobile_views est défini sur true.
  • Regroupement et tri :
    • La requête regroupe les résultats par date de visite (visited_at) pour agréger les décomptes de visites par jour.
    • Elle trie les résultats par ordre croissant de date, fournissant une vue chronologique des visites des utilisateurs.

Exemple de résultats

date visits_count
2024-01-06 67
2024-01-07 71
2024-01-08 88
2024-01-09 79
2024-01-10 78
3 « J'aime »

6 messages ont été déplacées vers un nouveau sujet : Changer la description de « visites utilisateur » pour préciser qu’elle fait référence aux utilisateurs connectés