CommencezCommencez gratuitement

Rééchantillonner à une granularité quotidienne

Regrouper des données à une granularité plus élevée est une tâche analytique courante. On peut disposer d'un ensemble de données avec des horodatages précis et avoir besoin d'en observer les résultats agrégés. Dans SQL Server, plusieurs techniques sont offertes selon la granularité visée.

Pour ces exercices, nous examinerons un spa fictif. La direction du spa a envoyé des coupons à des client·e·s potentiel·le·s pour la période du 16 au 20 juin 2020 et souhaite voir si cette campagne a entraîné de nouvelles visites.

Dans cet exercice, nous verrons l'une des techniques de sous-échantillonnage les plus simples : convertir un type de données DATETIME2 ou DATETIME en un type de données contenant seulement la date sans composante heure : le type DATE.

Cette activité fait partie du cours

Analyse de séries chronologiques dans SQL Server

Voir le cours

Instructions de l’exercice

  • Rééchantillonnez les heures de début des visites des client·e·s à la granularité quotidienne et agrégez les résultats.
  • Remplissez la clause GROUP BY avec toutes les valeurs non agrégées de la clause SELECT (mais sans alias comme AS Day).

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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;
Modifier et exécuter le code