Rapporto Dashboard - Visualizzazioni Profilo Utente

Questa è una versione SQL del report della dashboard per le visualizzazioni del profilo utente.

Questo report della dashboard genera statistiche sul numero totale di visualizzazioni del profilo utente al giorno all’interno di un intervallo di date specificato.

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

Spiegazione della query SQL

Ecco una ripartizione di come funziona la query:

  • Parametri: La query accetta due parametri, :start_date e :end_date, che consentono all’utente di specificare l’intervallo di date per il report. Entrambi i parametri di data accettano il formato data AAAA-MM-GG.
  • Common Table Expression (CTE): La query inizia con una CTE denominata profile_views_per_day. Questo è un set di risultati temporaneo che utilizzeremo nella query principale.
  • Troncamento della data: all’interno della CTE, la funzione date_trunc viene utilizzata per troncare il timestamp viewed_at al giorno. Ciò significa che indipendentemente dall’ora in cui è stato visualizzato un profilo, verrà conteggiato in base alla sola data.
  • Conteggio delle visualizzazioni: la funzione COUNT(*) conta il numero di visualizzazioni del profilo per ogni giorno.
  • Filtraggio per intervallo di date: la clausola WHERE limita il conteggio per includere solo le visualizzazioni avvenute tra i parametri :start_date e :end_date, che sono impostati all’inizio della query.
  • Raggruppamento dei risultati: la clausola GROUP BY raggruppa i risultati per il giorno troncato in modo che il conteggio delle visualizzazioni venga aggregato per giorno.
  • Selezione dei risultati: l’istruzione SELECT principale recupera i risultati dalla CTE. Seleziona il giorno troncato (convertito in tipo data) e il numero di visualizzazioni per quel giorno.
  • Ordinamento dei risultati: infine, la clausola ORDER BY garantisce che i risultati siano presentati in ordine cronologico per giorno.

Risultati di esempio

day views
2024-01-05 263
2024-01-06 374
2024-01-07 272
2024-01-08 409
2024-01-09 606
2 Mi Piace