Kundendaten auf potenziellen Betrug analysieren
In diesem letzten Aufgabenset analysieren wir Day-Spa-Daten, um potenziellen Betrug zu erkennen. Unser Unternehmen gibt jedem Kunden einen persönlichen Pass und einen einzelnen Gästepass. Wir haben Check-in- und Check-out-Daten für jeden Kunden, und Gästepässe sind mit der Basis-Kunden-ID verknüpft. Das bedeutet, dass es Überschneidungen geben kann, wenn ein Kunde und ein Gast gemeinsam einchecken. Wir möchten sehen, ob es mindestens drei überlappende Einträge für einen einzelnen Kunden gibt, da dies gegen unsere Geschäftsregel verstoßen würde.
Der Schlüssel zum Verständnis überlappender Einträge besteht darin, unsere Daten zu „unpivoten“ und als Strom von Ein- und Ausgängen zu betrachten. Damit fangen wir an.
Diese Übung ist Teil des Kurses
Zeitreihenanalyse in SQL Server
Anleitung zur Übung
Trenne Start- und Endereignisse.
- Trage das Startdatum des Kundenbesuchs (
dsv.CustomerVisitStart) alsTimeUTCim Teil „entrances“ der Abfrage ein. - Ergänze die Fensterfunktion, die wir als
StartStopPointsaliasen, um den Strom der Check-ins je Kunde zu erhalten, sortiert nach ihrem Besuchsstartdatum. - Trage das Enddatum des Kundenbesuchs (
dsv.CustomerVisitEnd) alsTimeUTCim Teil „departures“ der Abfrage ein.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
-- 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