始める無料で始める

日単位の粒度にダウンサンプリングする

データをより粗い粒度にまとめることは、よくある分析タスクです。特定のタイムスタンプを持つデータから、集計結果を確認したいことがあります。SQL Server では、望む粒度に応じていくつかの手法が利用できます。

この演習では、架空のデイスパを題材にします。スパの経営陣は、2020 年 6 月 16 日から 20 日の期間に、新規顧客候補へクーポンを配布し、このキャンペーンが新規来店を促進したかを確認したいと考えています。

この演習では、最もシンプルなダウンサンプリング手法のひとつを扱います。DATETIME2DATETIME のデータ型を、時刻成分のない日付のみの DATE 型に変換する方法です。

この演習はコースの一部です

SQL Serverで学ぶ時系列分析

コースを見る

演習の手順

  • 顧客の来店開始時刻を日単位の粒度にダウンサンプリングし、結果を集計します。
  • SELECT 句で集計していない値については、GROUP BY 句を埋めてください(ただし、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;
コードを編集して実行