Aan de slagGa gratis aan de slag

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

Cursus bekijken

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;
Code bewerken en uitvoeren