Analisis data klien untuk potensi kecurangan
Dalam rangkaian latihan terakhir ini, kita akan menganalisis data day spa untuk mencari potensi kecurangan. Perusahaan kami memberikan setiap pelanggan satu kartu akses untuk penggunaan pribadi dan satu kartu akses tamu. Kami memiliki data check-in dan check-out untuk setiap klien dan kartu akses tamu terhubung kembali ke ID pelanggan utama. Ini berarti mungkin ada tumpang tindih ketika klien dan tamu sama-sama melakukan check-in. Kami ingin melihat apakah ada setidaknya tiga entri yang tumpang tindih untuk satu klien, karena itu akan melanggar aturan bisnis kami.
Kunci untuk memikirkan entri yang tumpang tindih adalah dengan melakukan unpivot pada data dan memikirkan aliran peristiwa masuk dan keluar. Kita akan melakukan itu terlebih dahulu.
Latihan ini merupakan bagian dari kursus
Analisis Deret Waktu di SQL Server
Instruksi latihan
Pisahkan peristiwa mulai dan peristiwa selesai.
- Isikan tanggal mulai kunjungan pelanggan (
dsv.CustomerVisitStart) sebagaiTimeUTCpada bagian "entrances" dari kueri. - Lengkapi fungsi window yang kita beri alias
StartStopPointsuntuk memberi kita aliran check-in untuk setiap pelanggan, diurutkan berdasarkan tanggal mulai kunjungan mereka. - Isikan tanggal selesai kunjungan pelanggan (
dsv.CustomerVisitEnd) sebagaiTimeUTCpada bagian "departures" dari kueri.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
-- 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