ПочатиПочніть безкоштовно

Даунсемплінг до щоденного рівня деталізації

Агрегування даних до вищого рівня деталізації — поширене аналітичне завдання. У нас може бути набір даних із точними часовими мітками, але нам потрібно подивитися на агреговані підсумки. У SQL Server є кілька технік залежно від потрібного рівня деталізації.

У цих вправах ми розглянемо вигадане денне спа. Керівництво спа розіслало купони потенційним новим клієнтам на період із 16 по 20 червня 2020 року й хоче побачити, чи ця кампанія спричинила нові відвідування.

У цій вправі ми розглянемо одну з найпростіших технік даунсемплінгу: перетворення типу даних DATETIME2 або DATETIME на тип даних лише з датою без часового компонента — тип DATE.

Ця вправа є частиною курсу

Аналіз часових рядів у SQL Server

Переглянути курс

Інструкції до вправи

  • Виконайте даунсемплінг часу початку відвідувань клієнтів до щоденного рівня деталізації та агрегуйте результати.
  • Заповніть клаузу GROUP BY усіма неагрегованими значеннями з клаузи SELECT (але без псевдонімів на кшталт AS Day).

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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;
Редагувати та запускати код