Dashboard-Bericht - Nutzerprofilansichten

Dies ist eine SQL-Version des Dashboard-Berichts für Benutzerprofilansichten.

Dieser Dashboard-Bericht generiert Statistiken über die Gesamtzahl der Benutzerprofilansichten pro Tag innerhalb eines bestimmten Datumsbereichs.

-- [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

Erklärung der SQL-Abfrage

Hier ist eine Aufschlüsselung, wie die Abfrage funktioniert:

  • Parameter: Die Abfrage akzeptiert zwei Parameter, :start_date und :end_date, mit denen der Benutzer den Datumsbereich für den Bericht angeben kann. Beide Datumsparameter akzeptieren das Datumsformat JJJJ-MM-TT.
  • Common Table Expression (CTE): Die Abfrage beginnt mit einer CTE namens profile_views_per_day. Dies ist ein temporärer Ergebnissatz, den wir in der Hauptabfrage verwenden werden.
  • Datumsabschneidung: Innerhalb der CTE wird die Funktion date_trunc verwendet, um den Zeitstempel viewed_at auf den Tag zu kürzen. Das bedeutet, dass unabhängig von der Uhrzeit, zu der ein Profil angesehen wurde, es nur nach dem Datum gezählt wird.
  • Zählen von Ansichten: Die Funktion COUNT(*) zählt die Anzahl der Profilansichten für jeden Tag.
  • Filtern nach Datumsbereich: Die Klausel WHERE beschränkt die Zählung auf Ansichten, die zwischen den Parametern :start_date und :end_date aufgetreten sind, die am Anfang der Abfrage festgelegt sind.
  • Gruppieren von Ergebnissen: Die Klausel GROUP BY gruppiert die Ergebnisse nach dem gekürzten Tag, sodass die Anzahl der Ansichten pro Tag aggregiert wird.
  • Auswählen von Ergebnissen: Die Hauptanweisung SELECT ruft die Ergebnisse aus der CTE ab. Sie wählt den gekürzten Tag (umgewandelt in den Datentyp Datum) und die Anzahl der Ansichten für diesen Tag aus.
  • Sortieren von Ergebnissen: Schließlich stellt die Klausel ORDER BY sicher, dass die Ergebnisse chronologisch nach Tag sortiert dargestellt werden.

Beispielergebnisse

day views
2024-01-05 263
2024-01-06 374
2024-01-07 272
2024-01-08 409
2024-01-09 606
2 „Gefällt mir“