Mulai sekarangMulai gratis

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

Lihat Kursus

Instruksi latihan

Pisahkan peristiwa mulai dan peristiwa selesai.

  • Isikan tanggal mulai kunjungan pelanggan (dsv.CustomerVisitStart) sebagai TimeUTC pada bagian "entrances" dari kueri.
  • Lengkapi fungsi window yang kita beri alias StartStopPoints untuk memberi kita aliran check-in untuk setiap pelanggan, diurutkan berdasarkan tanggal mulai kunjungan mereka.
  • Isikan tanggal selesai kunjungan pelanggan (dsv.CustomerVisitEnd) sebagai TimeUTC pada 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
Edit dan Jalankan Kode