Informe del panel - Usuarios activos diarios

Este es una versión en SQL del Informe del Panel de Usuarios Diariamente Activos.

El informe SQL contará el número de usuarios únicos que han dado “me gusta” o han publicado en un sitio cada día.

--[params]
-- date :start_date
-- date :end_date

SELECT 
  ua.created_at::date AS day,
  COUNT(DISTINCT ua.user_id) AS engaged_users
FROM user_actions ua
INNER JOIN topics t on t.id = ua.target_topic_id
WHERE ua.created_at::date BETWEEN :start_date AND :end_date
    AND ua.action_type IN (1, 4, 5, 12)
GROUP BY ua.created_at::date
ORDER BY ua.created_at::date ASC 

Desglose de la consulta:

  • Parámetros de fecha: La consulta acepta dos parámetros de fecha, :start_date y :end_date, que le permiten especificar el rango para el informe.
  • Selección: Selecciona la fecha de la acción (ua.created_at::date) y cuenta los ID de usuario distintos (COUNT(DISTINCT ua.user_id)) que realizaron las acciones, denominando este recuento como engaged_users.
  • Fuente de datos: La consulta extrae datos de la tabla user_actions (ua) y la une con la tabla topics (t) para centrarse en las acciones relacionadas con los temas.
  • Tipos de acción: Filtra las acciones para incluir solo aquellas con los tipos 1, 4, 5 y 12. Estos tipos de acción corresponden a las siguientes actividades específicas:
    • 1: Me gusta
    • 4: Tema nuevo
    • 15: Respuesta
    • 12: Mensaje privado nuevo
  • Agrupación y ordenación: Los resultados se agrupan por la fecha de la acción y se ordenan en orden ascendente, lo que le proporciona una vista cronológica de la actividad.

Resultados de ejemplo

day engaged_users
2023-01-01 136
2023-01-02 124
2023-01-03 187
2023-01-04 287
2023-01-05 110
2023-01-06 95
2023-01-07 73
5 Me gusta

Esto es bastante interesante cuando lo ves expuesto. Sería bueno quizás tener una versión que incluyera Reacciones y Votaciones (encuestas, votos de temas, votos de publicaciones, quizás incluso comentarios de votación de publicaciones). :thinking:

2 Me gusta