Este é um relatório de painel em versão SQL para Visitas de Usuários e Visitas de Usuários (Dispositivos Móveis).
Este relatório de painel fornece insights sobre o engajamento do usuário rastreando as visitas diárias dos usuários. Os administradores podem filtrar os dados com base no intervalo de datas, associação de grupo e tipo de dispositivo (móvel ou não móvel).
Compreender os padrões de visita do usuário pode ajudar os administradores a tomar decisões informadas para aprimorar o engajamento do usuário e a saúde da comunidade.
-- [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
Explicação da Consulta SQL
A consulta SQL opera selecionando dados da tabela user_visits, que registra as visitas de cada usuário à plataforma. Os principais componentes da consulta são explicados abaixo:
- Parâmetros
:start_datee:end_datedefinem o intervalo de datas para o relatório. Ambos os parâmetros de data aceitam o formato de dataAAAA-MM-DD.:group_namepermite filtrar por um nome de grupo de usuários específico. Se não for especificado, os dados de todos os grupos são incluídos.:mobile_viewsdetermina se deve incluir apenas visitas de dispositivos móveis (true) ou todas as visitas (false).
- Seleção de Dados e Operações de Junção:
- A consulta seleciona a data da visita (
visited_at) e conta IDs de usuário distintos (user_id) para calcular o número de visitas exclusivas por dia. - Ela executa um
LEFT JOINcom a tabelagroup_userspara associar as visitas do usuário aos seus respectivos grupos, seguido por outroLEFT JOINcom a tabelagroupspara filtrar pelo nome do grupo especificado, se houver.
- A consulta seleciona a data da visita (
- Filtragem:
- A cláusula
WHEREaplica filtros com base nos parâmetros de entrada:- Garante que apenas as visitas dentro do intervalo de datas especificado sejam incluídas.
- Filtra pelo nome do grupo, se especificado, e garante que as visitas sejam contadas para usuários pertencentes a esse grupo.
- Inclui apenas visitas móveis se o parâmetro
:mobile_viewsestiver definido comotrue.
- A cláusula
- Agrupamento e Ordenação:
- A consulta agrupa os resultados pela data da visita (
visited_at) para agregar as contagens de visitas por dia. - Ela ordena os resultados em ordem crescente por data, fornecendo uma visualização cronológica das visitas do usuário.
- A consulta agrupa os resultados pela data da visita (
Exemplo de Resultados
| date | visits_count |
|---|---|
| 2024-01-06 | 67 |
| 2024-01-07 | 71 |
| 2024-01-08 | 88 |
| 2024-01-09 | 79 |
| 2024-01-10 | 78 |
| … | … |