Muestreo descendente a una granularidad semanal
La dirección quiere ver cómo se ha utilizado el spa en 2020. Quieren revisar los resultados por semana, analizando el total de minutos de uso de las instalaciones, el número de asistentes y el cliente con el ID de cliente más alto esa semana para comprobar si están llegando clientes nuevos.
Podemos usar funciones de SQL Server para reducir la muestra a una granularidad fija como esta. Una de esas funciones es DATEPART().
Este ejercicio forma parte del curso
Análisis de series temporales en SQL Server
Instrucciones del ejercicio
- Reduce la muestra de los datos de visitas al spa (diarios) a una granularidad semanal usando la función
DATEPART(). - Encuentra el cliente con el ID de cliente más alto para una semana determinada.
- Completa la cláusula
GROUP BYcon cualquier valor no agregado que aparezca en la cláusulaSELECT(pero sin alias comoAS Week).
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
SELECT
-- Downsample to a weekly grain
___(___, dsv.CustomerVisitStart) AS Week,
SUM(dsv.AmenityUseInMinutes) AS AmenityUseInMinutes,
-- Find the customer with the largest customer ID for that week
___(dsv.___) AS HighestCustomerID,
COUNT(1) AS NumberOfAttendees
FROM dbo.DaySpaVisit dsv
WHERE
dsv.CustomerVisitStart >= '2020-01-01'
AND dsv.CustomerVisitStart < '2021-01-01'
GROUP BY
-- When we use aggregation functions like SUM or COUNT,
-- we need to GROUP BY the non-aggregated columns
___(___, dsv.CustomerVisitStart)
ORDER BY
Week;