Muestrea a una granularidad diaria
Agrupar datos a una granularidad superior es una tarea analítica común. Puede que tengamos un conjunto de datos con marcas temporales específicas y necesitemos observar resultados agregados. En SQL Server, hay varias técnicas disponibles según la granularidad que quieras obtener.
Para estos ejercicios, veremos un balneario ficticio. La dirección del spa envió cupones a posibles nuevos clientes para el periodo del 16 al 20 de junio de 2020 y quiere comprobar si esta campaña impulsó nuevas visitas.
En este ejercicio, veremos una de las técnicas de muestreo a menor resolución más sencillas: convertir un tipo de datos DATETIME2 o DATETIME en un tipo de datos con solo fecha y sin componente de hora: el tipo DATE.
Este ejercicio forma parte del curso
Análisis de series temporales en SQL Server
Instrucciones del ejercicio
- Reduce a granularidad diaria las horas de inicio de las visitas de clientes y agrega los resultados.
- Completa la cláusula GROUP BY con cualquier valor no agregado de la cláusula SELECT (pero sin alias como
AS Day).
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
SELECT
-- Downsample to a daily grain
-- Cast CustomerVisitStart as a date
___(dsv.CustomerVisitStart AS ___) AS Day,
SUM(dsv.AmenityUseInMinutes) AS AmenityUseInMinutes,
COUNT(1) AS NumberOfAttendees
FROM dbo.DaySpaVisit dsv
WHERE
dsv.CustomerVisitStart >= '2020-06-11'
AND dsv.CustomerVisitStart < '2020-06-23'
GROUP BY
-- When we use aggregation functions like SUM or COUNT,
-- we need to GROUP BY the non-aggregated columns
___(dsv.CustomerVisitStart AS ___)
ORDER BY
Day;