Esta es una versión SQL del Informe del Panel para Vistas del Perfil de Usuario.
Este informe del panel genera estadísticas sobre el número total de vistas del perfil de usuario por día dentro de un rango de fechas especificado.
-- [params]
-- date :start_date = 2024-01-05
-- date :end_date = 2024-02-06
WITH profile_views_per_day AS (
SELECT
date_trunc('day', viewed_at) AS day,
COUNT(*) AS views
FROM user_profile_views
WHERE viewed_at >= :start_date AND viewed_at <= :end_date
GROUP BY day
)
SELECT
day::date,
views
FROM profile_views_per_day
ORDER BY day
Explicación de la consulta SQL
Aquí hay un desglose de cómo funciona la consulta:
- Parámetros: La consulta acepta dos parámetros,
:start_datey:end_date, que permiten al usuario especificar el rango de fechas para el informe. Ambos parámetros de fecha aceptan el formato de fechaAAAA-MM-DD. - Expresión Común de Tabla (CTE): La consulta comienza con una CTE llamada
profile_views_per_day. Este es un conjunto de resultados temporal que utilizaremos en la consulta principal. - Truncamiento de Fecha: Dentro de la CTE, la función
date_truncse utiliza para truncar la marca de tiempoviewed_atal día. Esto significa que, independientemente de la hora en que se vio un perfil, se contará según la fecha solamente. - Conteo de Vistas: La función
COUNT(*)cuenta el número de vistas de perfil para cada día. - Filtrado por Rango de Fechas: La cláusula
WHERErestringe el conteo para incluir solo las vistas que ocurrieron entre los parámetros:start_datey:end_date, que se establecen en la parte superior de la consulta. - Agrupación de Resultados: La cláusula
GROUP BYagrupa los resultados por el día truncado para que el conteo de vistas se agregue por día. - Selección de Resultados: La declaración
SELECTprincipal recupera los resultados de la CTE. Selecciona el día truncado (convertido a tipo de fecha) y el número de vistas para ese día. - Ordenación de Resultados: Finalmente, la cláusula
ORDER BYasegura que los resultados se presenten en orden cronológico por día.
Resultados de ejemplo
| day | views |
|---|---|
| 2024-01-05 | 263 |
| 2024-01-06 | 374 |
| 2024-01-07 | 272 |
| 2024-01-08 | 409 |
| 2024-01-09 | 606 |