Zacznij terazZacznij za darmo

Próbkowanie w dół do ziarnistości dziennej

Agregowanie danych do wyższego poziomu ziarnistości to jedno z najczęstszych zadań analitycznych. Możemy dysponować zbiorem danych z dokładnymi znacznikami czasu, a jednocześnie potrzebować podglądu wyników w postaci zagregowanej. W SQL Server dostępnych jest kilka technik – wybór zależy od pożądanego poziomu ziarnistości.

W tych ćwiczeniach przyjrzymy się fikcyjnemu centrum spa. Zarząd spa rozesłał kupony do potencjalnych nowych klientów w okresie od 16 do 20 czerwca 2020 roku i chciałby sprawdzić, czy ta kampania przełożyła się na wzrost liczby wizyt.

W tym ćwiczeniu skorzystamy z jednej z najprostszych technik próbkowania w dół: konwersji typu danych DATETIME2 lub DATETIME na typ zawierający wyłącznie datę, bez składowej godziny – czyli typ DATE.

To ćwiczenie jest częścią kursu

Analiza szeregów czasowych w SQL Server

Zobacz kurs

Instrukcje do ćwiczenia

  • Wykonaj próbkowanie w dół czasów rozpoczęcia wizyt klientów do ziarnistości dziennej i zagreguj wyniki.
  • Uzupełnij klauzulę GROUP BY o wszystkie wartości nieagregowane z klauzuli SELECT (bez aliasów, takich jak AS Day).

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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;
Edytuj i uruchom kod