ÎncepețiÎncepe gratuit

Construiește un flux de evenimente

În exercițiul anterior, am defalcat datele despre spa pe zi într-un flux de intrări și ieșiri. Depivotarea datelor ne permite să trecem la pasul următor, și anume ordonarea întregului flux.

Rezultatele din exercițiul anterior se află acum într-un tabel temporar numit #StartStopPoints. Coloanele din acest tabel sunt CustomerID, TimeUTC, EntryCount și StartOrdinal. Acestea sunt singurele coloane pe care va trebui să le folosești în acest exercițiu. TimeUTC reprezintă momentul evenimentului, EntryCount indică variația netă pentru eveniment (+1 sau -1), iar StartOrdinal apare pentru evenimentele de intrare și indică ordinea de intrare.

Acest exercițiu face parte din cursul

Analiza seriilor de timp în SQL Server

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează funcția de fereastră potrivită (ROW_NUMBER()) pentru a crea un flux de check-in-uri și check-out-uri în ordine cronologică.
  • Partiționează după ID-ul clientului pentru a calcula un rezultat per utilizator.
  • Ordonează după momentul evenimentului și rezolvă situațiile de egalitate folosind valoarea ordinalului de start.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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;
Editează și rulează codul