Mulai sekarangMulai gratis

Membangun aliran peristiwa

Pada latihan sebelumnya, kita memecah data day spa menjadi aliran peristiwa masuk dan keluar. Melakukan unpivot pada data memungkinkan kita melanjutkan ke langkah berikutnya, yaitu mengurutkan seluruh aliran.

Hasil dari latihan sebelumnya sekarang ada di tabel sementara bernama #StartStopPoints. Kolom-kolom dalam tabel ini adalah CustomerID, TimeUTC, EntryCount, dan StartOrdinal. Hanya kolom-kolom ini yang perlu Anda gunakan dalam latihan ini. TimeUTC merepresentasikan waktu peristiwa, EntryCount menunjukkan perubahan bersih untuk peristiwa tersebut (+1 atau -1), dan StartOrdinal muncul untuk peristiwa masuk serta memberikan urutan masuk.

Latihan ini merupakan bagian dari kursus

Analisis Deret Waktu di SQL Server

Lihat Kursus

Instruksi latihan

  • Lengkapi fungsi window yang sesuai (ROW_NUMBER()) untuk membuat aliran check-in dan check-out dalam urutan kronologis.
  • Partisi berdasarkan ID pelanggan untuk menghitung hasil per pengguna.
  • Urutkan berdasarkan waktu peristiwa dan selesaikan nilai yang sama (tie) dengan menggunakan nilai start ordinal.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

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;
Edit dan Jalankan Kode