НачатьНачать бесплатно

Понижение гранулярности до недельного уровня

Руководство хочет оценить, насколько активно клиенты пользовались спа-зоной в 2020 году. Результаты должны быть представлены по неделям: общее количество минут использования услуг, число посетителей, а также клиент с наибольшим идентификатором за каждую неделю — чтобы понять, приходят ли новые клиенты.

Для понижения гранулярности до фиксированного уровня в SQL Server можно использовать специальные функции. Одна из них — DATEPART().

Это упражнение является частью курса

Анализ временных рядов в SQL Server

Посмотреть курс

Инструкции к упражнению

  • Понизьте гранулярность данных о посещениях спа до недельного уровня с помощью функции DATEPART().
  • Найдите клиента с наибольшим идентификатором для каждой недели.
  • Заполните раздел GROUP BY, указав все неагрегированные значения из раздела SELECT (без псевдонимов, таких как AS Week).

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

SELECT
	-- Downsample to a weekly grain
	___(___, dsv.CustomerVisitStart) AS Week,
	SUM(dsv.AmenityUseInMinutes) AS AmenityUseInMinutes,
	-- Find the customer with the largest customer ID for that week
	___(dsv.___) AS HighestCustomerID,
	COUNT(1) AS NumberOfAttendees
FROM dbo.DaySpaVisit dsv
WHERE
	dsv.CustomerVisitStart >= '2020-01-01'
	AND dsv.CustomerVisitStart < '2021-01-01'
GROUP BY
	-- When we use aggregation functions like SUM or COUNT,
    -- we need to GROUP BY the non-aggregated columns
	___(___, dsv.CustomerVisitStart)
ORDER BY
	Week;
Редактировать и запускать код