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_datee:end_datedefiniscono l’intervallo di date per il report. Entrambi i parametri di data accettano il formato dataAAAA-MM-GG.:group_nameconsente il filtraggio per nome di un gruppo utente specifico. Se non specificato, vengono inclusi i dati di tutti i gruppi.:mobile_viewsdetermina 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 JOINcon la tabellagroup_usersper associare le visite degli utenti ai rispettivi gruppi, seguito da un altroLEFT JOINcon la tabellagroupsper filtrare per il nome del gruppo specificato, se presente.
- La query seleziona la data della visita (
- Filtraggio:
- La clausola
WHEREapplica 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 sutrue.
- La clausola
- 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.
- La query raggruppa i risultati per data della visita (
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 |
| … | … |