Začněte nyníZačněte zdarma

Sestavení proudu událostí

V předchozím cvičení jsme rozdělili data denního lázeňského pobytu na proud příchodů a odchodů. Unpivotování dat nám umožňuje přejít k dalšímu kroku, kterým je seřazení celého proudu událostí.

Výsledky z předchozího cvičení jsou teď uloženy v dočasné tabulce #StartStopPoints. Sloupce v této tabulce jsou CustomerID, TimeUTC, EntryCount a StartOrdinal. Pouze tyto sloupce budeš v tomto cvičení potřebovat. TimeUTC představuje čas události, EntryCount udává čistou změnu pro danou událost (+1 nebo -1) a StartOrdinal se objevuje u událostí příchodu a určuje pořadí vstupu.

Toto cvičení je součástí kurzu

Time Series Analysis in SQL Server

Zobrazit kurz

Pokyny k cvičení

  • Doplň odpovídající okenní funkci (ROW_NUMBER()), která vytvoří proud příchodů a odchodů v chronologickém pořadí.
  • Proveď rozdělení (partition) podle ID zákazníka, aby se výsledek počítal samostatně pro každého uživatele.
  • Seřaď záznamy podle času události a případné shody rozhoduj pomocí hodnoty pořadí příchodu (start ordinal).

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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;
Upravit a spustit kód