Kom igångKom igång gratis

Analysera kunddata för potentiellt bedrägeri

I den här sista övningsserien analyserar vi data från ett dagsspa för att leta efter potentiellt bedrägeri. Företaget ger varje kund ett personligt pass och ett gästpass. Vi har in- och utcheckningsdata för varje kund, och gästpass kopplas tillbaka till baskund-ID:t. Det innebär att det kan uppstå överlapp när en kund och en gäst checkar in samtidigt. Vi vill se om det finns minst tre överlappande poster för en enskild kund, eftersom det skulle bryta mot vår affärsregel.

Nyckel till att förstå överlappande poster är att avpivotera datan och tänka på strömmen av ankomster och avresor. Det är det vi gör först.

Den här övningen är en del av kursen

Tidsserieanalys i SQL Server

Visa kurs

Övningsinstruktioner

Dela upp start- och sluthändelser.

  • Fyll i kundens besöksstartdatum (dsv.CustomerVisitStart) som TimeUTC i "ankomst"-delen av frågan.
  • Fyll i fönsterfunktionen som vi ger aliaset StartStopPoints för att få strömmen av incheckningar per kund, sorterad efter besöksstartdatum.
  • Fyll i kundens besöksslutdatum (dsv.CustomerVisitEnd) som TimeUTC i "avresa"-delen av frågan.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

-- 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
Redigera och kör kod