ComeçarComece de graça

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

Ver curso

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;
Editar e executar o código