Olay akışı oluştur
Önceki egzersizde, spa verilerini giriş ve çıkışlardan oluşan bir akışa ayırdık. Veriyi unpivot etmek, tüm akışı sıralayacağımız bir sonraki adıma geçmemizi sağlıyor.
Önceki egzersizin sonuçları şimdi #StartStopPoints adlı geçici bir tabloda. Bu tablodaki sütunlar CustomerID, TimeUTC, EntryCount ve StartOrdinal. Bu egzersizde kullanman gereken tek sütunlar bunlar. TimeUTC olay zamanını temsil eder, EntryCount olayın net değişimini gösterir (+1 veya -1) ve StartOrdinal giriş olaylarında görünür ve giriş sırasını verir.
Bu egzersiz, kursun bir parçasıdır
SQL Server'da Zaman Serisi Analizi
Egzersiz talimatları
- Kronolojik sırada check-in ve check-out akışı oluşturmak için uygun pencere fonksiyonunu (
ROW_NUMBER()) doldur. - Kullanıcı başına sonuç hesaplamak için müşteri kimliğine göre bölümlendir (PARTITION BY).
- Olay zamanına göre sırala ve eşitlikleri başlangıç sırası değeriyle (start ordinal) çöz.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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;