Bygg en händelseström
I föregående övning delade vi upp dagssspa-data i en ström av inträden och utträden. Genom att avpivotera data kan vi gå vidare till nästa steg, nämligen att sortera hela strömmen.
Resultaten från föregående övning finns nu i en temporär tabell kallad #StartStopPoints. Kolumnerna i den här tabellen är CustomerID, TimeUTC, EntryCount och StartOrdinal. Det är bara dessa kolumner du behöver använda i den här övningen. TimeUTC representerar händelsetiden, EntryCount anger nettoförändringen för händelsen (+1 eller -1) och StartOrdinal förekommer för inträden och anger inträdesordningen.
Den här övningen är en del av kursen
Tidsserieanalys i SQL Server
Övningsinstruktioner
- Fyll i lämplig fönsterfunktion (
ROW_NUMBER()) för att skapa en ström av incheckningar och utcheckningar i kronologisk ordning. - Partitionera efter kund-ID för att beräkna ett resultat per användare.
- Sortera efter händelsetiden och lös eventuella likheter med hjälp av startvärdet för ordningstalet.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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;