Criar um fluxo de eventos
No exercício anterior, separamos os dados do spa em um fluxo de entradas e saídas. Fazer o unpivot dos dados permite avançar para a próxima etapa, que é ordenar todo o fluxo.
Os resultados do exercício anterior agora estão em uma tabela temporária chamada #StartStopPoints. As colunas dessa tabela são CustomerID, TimeUTC, EntryCount e StartOrdinal. Essas são as únicas colunas que você vai precisar usar neste exercício. TimeUTC representa o horário do evento, EntryCount indica a variação líquida do evento (+1 ou -1) e StartOrdinal aparece em eventos de entrada e fornece a ordem de entrada.
Este exercício faz parte do curso
Análise de Séries Temporais no SQL Server
Instruções do exercício
- Complete a função de janela apropriada (
ROW_NUMBER()) para criar um fluxo de check-ins e check-outs em ordem cronológica. - Particione pelo ID do cliente para calcular um resultado por usuário.
- Ordene pelo horário do evento e resolva empates usando o valor de start ordinal.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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;