Informe del Panel - Visitas de Usuarios

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_date y :end_date definen el rango de fechas para el informe. Ambos parámetros de fecha aceptan el formato de fecha YYYY-MM-DD.
    • :group_name permite filtrar por el nombre de un grupo de usuarios específico. Si no se especifica, se incluyen datos de todos los grupos.
    • :mobile_views determina 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 JOIN con la tabla group_users para asociar las visitas de los usuarios con sus respectivos grupos, seguida de otra LEFT JOIN con la tabla groups para filtrar por el nombre del grupo especificado, si lo hay.
  • Filtrado:
    • La cláusula WHERE aplica 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_views se establece en true.
  • 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.

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
3 Me gusta

6 publicaciones se dividieron en un nuevo tema: Cambiar la descripción de ‘visitas de usuarios’ para que quede más claro que se refiere a usuarios que han iniciado sesión