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
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;