Genera un flujo de eventos
En el ejercicio anterior, separamos los datos del spa en un flujo de entradas y salidas. Al deshacer la tabla (unpivot), ahora podemos pasar al siguiente paso: ordenar todo el flujo.
Los resultados del ejercicio anterior están en una tabla temporal llamada #StartStopPoints. Las columnas de esta tabla son CustomerID, TimeUTC, EntryCount y StartOrdinal. Estas son las únicas columnas que necesitarás usar en este ejercicio. TimeUTC representa la hora del evento, EntryCount indica el cambio neto del evento (+1 o -1) y StartOrdinal aparece en los eventos de entrada y da el orden de entrada.
Este ejercicio forma parte del curso
Análisis de series temporales en SQL Server
Instrucciones del ejercicio
- Completa la función de ventana adecuada (
ROW_NUMBER()) para crear un flujo de check-ins y check-outs en orden cronológico. - Haz la partición por el ID del cliente para calcular un resultado por usuario.
- Ordena por la hora del evento y resuelve los empates usando el valor de start ordinal.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
SELECT s.*,
-- Build a stream of all check-in and check-out events
___() OVER (
-- Break this out by customer ID
PARTITION BY s.___
-- Order by event time and then the start ordinal
-- value (in case of exact time matches)
ORDER BY s.___, s.___
) AS StartOrEndOrdinal
FROM #StartStopPoints s;