Tworzenie strumienia zdarzeń
W poprzednim ćwiczeniu podzieliliśmy dane spa dziennego na strumień wejść i wyjść. Odpivotowanie danych pozwala przejść do kolejnego kroku, czyli posortowania całego strumienia.
Wyniki z poprzedniego ćwiczenia są teraz w tabeli tymczasowej o nazwie #StartStopPoints. Kolumny tej tabeli to CustomerID, TimeUTC, EntryCount i StartOrdinal. To jedyne kolumny, których będziesz używać w tym ćwiczeniu. TimeUTC reprezentuje czas zdarzenia, EntryCount określa zmianę netto dla zdarzenia (+1 lub -1), a StartOrdinal pojawia się dla zdarzeń wejścia i wskazuje kolejność przybycia.
To ćwiczenie jest częścią kursu
Analiza szeregów czasowych w SQL Server
Instrukcje do ćwiczenia
- Uzupełnij odpowiednią funkcję okna (
ROW_NUMBER()), aby utworzyć strumień zameldowań i wymeldowań w porządku chronologicznym. - Zastosuj partycjonowanie według identyfikatora klienta, aby obliczyć wynik dla każdego użytkownika.
- Posortuj według czasu zdarzenia, a remisy rozwiązuj przy użyciu wartości porządkowej wejścia.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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;