Bouw een stroom van events
In de vorige oefening hebben we de dag-spa-gegevens opgesplitst in een stroom van binnenkomsten en vertrekken. Door de data te unpivotten kunnen we naar de volgende stap: de hele stroom ordenen.
De resultaten uit de vorige oefening staan nu in een tijdelijke tabel #StartStopPoints. De kolommen in deze tabel zijn CustomerID, TimeUTC, EntryCount en StartOrdinal. Dit zijn de enige kolommen die je in deze oefening nodig hebt. TimeUTC is het tijdstip van het event, EntryCount geeft de netto wijziging voor het event aan (+1 of -1), en StartOrdinal verschijnt bij binnenkomst-events en geeft de volgorde van binnenkomst aan.
Deze oefening maakt deel uit van de cursus
Tijdreeksanalyse in SQL Server
Oefeninstructies
- Vul de juiste windowfunctie (
ROW_NUMBER()) in om een stroom van check-ins en check-outs in chronologische volgorde te maken. - Partitioneer op het klant-ID om een resultaat per gebruiker te berekenen.
- Sorteer op het tijdstip van het event en los gelijke waarden op met de start-ordinale waarde.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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;