Report Dashboard - Visite Utente

Questa è una versione SQL del report di dashboard per le visite degli utenti e le visite degli utenti (mobile).

Questo report di dashboard fornisce informazioni sull’interazione degli utenti monitorando le visite giornaliere degli utenti. Gli amministratori possono filtrare i dati in base all’intervallo di date, all’appartenenza al gruppo e al tipo di dispositivo (mobile o non mobile).

Comprendere i modelli di visita degli utenti può aiutare gli amministratori a prendere decisioni informate per migliorare l’interazione degli utenti e la salute della community.

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

Spiegazione della query SQL

La query SQL opera selezionando i dati dalla tabella user_visits, che registra le visite di ciascun utente alla piattaforma. I componenti principali della query sono spiegati di seguito:

  • Parametri
    • :start_date e :end_date definiscono l’intervallo di date per il report. Entrambi i parametri di data accettano il formato data AAAA-MM-GG.
    • :group_name consente il filtraggio per nome di un gruppo utente specifico. Se non specificato, vengono inclusi i dati di tutti i gruppi.
    • :mobile_views determina se includere solo le visite da dispositivi mobili (true) o tutte le visite (false).
  • Selezione dei dati e operazioni di join:
    • La query seleziona la data della visita (visited_at) e conta gli ID utente distinti (user_id) per calcolare il numero di visite uniche al giorno.
    • Esegue un LEFT JOIN con la tabella group_users per associare le visite degli utenti ai rispettivi gruppi, seguito da un altro LEFT JOIN con la tabella groups per filtrare per il nome del gruppo specificato, se presente.
  • Filtraggio:
    • La clausola WHERE applica i filtri in base ai parametri di input:
      • Garantisce che vengano incluse solo le visite nell’intervallo di date specificato.
      • Filtra per nome del gruppo se specificato e garantisce che le visite vengano conteggiate per gli utenti appartenenti a quel gruppo.
      • Include solo le visite mobili se il parametro :mobile_views è impostato su true.
  • Raggruppamento e ordinamento:
    • La query raggruppa i risultati per data della visita (visited_at) per aggregare i conteggi delle visite al giorno.
    • Ordina i risultati in ordine crescente per data, fornendo una visualizzazione cronologica delle visite degli utenti.

Esempio di risultati

data visits_count
2024-01-06 67
2024-01-07 71
2024-01-08 88
2024-01-09 79
2024-01-10 78
3 Mi Piace

6 post sono stati divisi in un nuovo argomento: Modifica la descrizione di ‘visite utente’ per chiarire che si riferisce agli utenti con accesso effettuato