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_datey: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 comoengaged_users. - Fuente de datos: La consulta extrae datos de la tabla
user_actions(ua) y la une con la tablatopics(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 gusta4: Tema nuevo15: Respuesta12: 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 |