Este es una versión SQL del Informe del Panel para Visitas de Usuarios y Visitas de Usuarios (Móvil).
Este informe del panel proporciona información sobre la participación del usuario al rastrear las visitas diarias de los usuarios. Los administradores pueden filtrar los datos según el rango de fechas, la membresía del grupo y el tipo de dispositivo (móvil o no móvil).
Comprender los patrones de visitas de los usuarios puede ayudar a los administradores a tomar decisiones informadas para mejorar la participación del usuario y la salud de la comunidad.
-- [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
Explicación de la consulta SQL
La consulta SQL opera seleccionando datos de la tabla user_visits, que registra las visitas de cada usuario a la plataforma. Los componentes principales de la consulta se explican a continuación:
- Parámetros
:start_datey:end_datedefinen el rango de fechas para el informe. Ambos parámetros de fecha aceptan el formato de fechaYYYY-MM-DD.:group_namepermite filtrar por el nombre de un grupo de usuarios específico. Si no se especifica, se incluyen datos de todos los grupos.:mobile_viewsdetermina si se incluyen solo las visitas desde dispositivos móviles (true) o todas las visitas (false).
- Selección de datos y operaciones de unión:
- La consulta selecciona la fecha de visita (
visited_at) y cuenta los ID de usuario únicos (user_id) para calcular el número de visitas únicas por día. - Realiza una
LEFT JOINcon la tablagroup_userspara asociar las visitas de los usuarios con sus respectivos grupos, seguida de otraLEFT JOINcon la tablagroupspara filtrar por el nombre del grupo especificado, si lo hay.
- La consulta selecciona la fecha de visita (
- Filtrado:
- La cláusula
WHEREaplica filtros basados en los parámetros de entrada:- Asegura que solo se incluyan las visitas dentro del rango de fechas especificado.
- Filtra por nombre de grupo si se especifica, y asegura que se cuenten las visitas de los usuarios que pertenecen a ese grupo.
- Incluye solo visitas móviles si el parámetro
:mobile_viewsse establece entrue.
- La cláusula
- Agrupación y ordenación:
- La consulta agrupa los resultados por la fecha de visita (
visited_at) para agregar los recuentos de visitas por día. - Ordena los resultados en orden ascendente por fecha, proporcionando una vista cronológica de las visitas de los usuarios.
- La consulta agrupa los resultados por la fecha de visita (
Resultados de ejemplo
| fecha | visits_count |
|---|---|
| 2024-01-06 | 67 |
| 2024-01-07 | 71 |
| 2024-01-08 | 88 |
| 2024-01-09 | 79 |
| 2024-01-10 | 78 |
| … | … |