LoslegenKostenlos loslegen

Auf tägliche Granularität herunterstufen

Daten auf eine höhere Granularität zu verdichten, ist eine häufige Analyseaufgabe. Wir haben möglicherweise einen Datensatz mit konkreten Zeitstempeln und möchten die aggregierten Ergebnisse betrachten. In SQL Server gibt es dafür mehrere Techniken – je nachdem, welche Granularität du brauchst.

Für diese Übungen betrachten wir ein fiktives Day Spa. Das Management hat für den Zeitraum vom 16. bis 20. Juni 2020 Coupons an potenzielle neue Kundinnen und Kunden verschickt und möchte nun sehen, ob diese Kampagne zu neuen Besuchen geführt hat.

In dieser Aufgabe sehen wir uns eine der einfachsten Downsampling-Techniken an: einen DATETIME2‑ oder DATETIME‑Datentyp in einen Datentyp nur mit Datum und ohne Zeitkomponente umzuwandeln – den Typ DATE.

Diese Übung ist Teil des Kurses

Zeitreihenanalyse in SQL Server

Kurs anzeigen

Anleitung zur Übung

  • Stufe die Startzeiten der Kundenbesuche auf die tägliche Granularität herunter und aggregiere die Ergebnisse.
  • Fülle die GROUP BY-Klausel mit allen nicht aggregierten Werten aus der SELECT-Klausel (aber ohne Aliasse wie AS Day).

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

SELECT
	-- Downsample to a daily grain
    -- Cast CustomerVisitStart as a date
	___(dsv.CustomerVisitStart AS ___) AS Day,
	SUM(dsv.AmenityUseInMinutes) AS AmenityUseInMinutes,
	COUNT(1) AS NumberOfAttendees
FROM dbo.DaySpaVisit dsv
WHERE
	dsv.CustomerVisitStart >= '2020-06-11'
	AND dsv.CustomerVisitStart < '2020-06-23'
GROUP BY
	-- When we use aggregation functions like SUM or COUNT,
    -- we need to GROUP BY the non-aggregated columns
	___(dsv.CustomerVisitStart AS ___)
ORDER BY
	Day;
Code bearbeiten und ausführen