Převzorkování na denní granularitu
Agregace dat na vyšší granularitu je běžný analytický úkol. Často máme k dispozici data s konkrétními časovými razítky a potřebujeme zobrazit souhrnné výsledky. V SQL Serveru existuje několik technik – záleží na tom, jakou granularitu potřebuješ.
V těchto cvičeních se podíváme na fiktivní den spa. Vedení spa rozesílalo kupony potenciálním novým zákazníkům v období od 16. do 20. června 2020 a chce zjistit, zda tato kampaň přilákala nové návštěvy.
V tomto cvičení se zaměříme na jednu z nejjednodušších technik převzorkování: převod datového typu DATETIME2 nebo DATETIME na datový typ obsahující pouze datum bez časové složky – typ DATE.
Toto cvičení je součástí kurzu
Time Series Analysis in SQL Server
Pokyny k cvičení
- Převzorkuj časy začátku návštěv zákazníků na denní granularitu a výsledky agreguj.
- Do klauzule GROUP BY doplň všechny neagregované hodnoty z klauzule SELECT (bez aliasů, jako je
AS Day).
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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;