Olası sahtekarlık için müşteri verilerini analiz et
Bu son egzersiz setinde, olası sahtekarlığı tespit etmek için bir gün spa verisini analiz edeceğiz. Şirketimiz her müşteriye kişisel kullanım için bir adet geçiş ve bir adet misafir geçişi verir. Her müşteri için giriş-çıkış verilerimiz var ve misafir geçişleri temel müşteri kimliğine bağlıdır. Bu, bir müşteri ve misafir birlikte giriş yaptığında örtüşme olabileceği anlamına gelir. Tek bir müşteri için en az üç örtüşen giriş olup olmadığını görmek istiyoruz; bu, iş kuralımızın ihlali olur.
Örtüşen girişleri düşünmenin anahtarı, veriyi "unpivot" ederek giriş ve çıkış akışı şeklinde ele almaktır. Önce bunu yapacağız.
Bu egzersiz, kursun bir parçasıdır
SQL Server'da Zaman Serisi Analizi
Egzersiz talimatları
Başlangıç olaylarını ve bitiş olaylarını ayır.
- Sorgunun "entrances" kısmında müşterinin ziyaret başlangıç tarihini (
dsv.CustomerVisitStart)TimeUTColarak doldur. - Her müşteri için, ziyaret başlangıç tarihine göre sıralanmış giriş akışını elde etmek üzere
StartStopPointstakma adı verdiğimiz pencere fonksiyonunu doldur. - Sorgunun "departures" kısmında müşterinin ziyaret bitiş tarihini (
dsv.CustomerVisitEnd)TimeUTColarak doldur.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
-- This section focuses on entrances: CustomerVisitStart
SELECT
dsv.CustomerID,
dsv.___ AS TimeUTC,
1 AS EntryCount,
-- We want to know each customer's entrance stream
-- Get a unique, ascending row number
___() OVER (
-- Break this out by customer ID
PARTITION BY dsv.___
-- Ordered by the customer visit start date
ORDER BY dsv.___
) AS StartOrdinal
FROM dbo.DaySpaVisit dsv
UNION ALL
-- This section focuses on departures: CustomerVisitEnd
SELECT
dsv.CustomerID,
dsv.___ AS TimeUTC,
-1 AS EntryCount,
NULL AS StartOrdinal
FROM dbo.DaySpaVisit dsv