ÎncepețiÎncepe gratuit

Reducerea granularității la nivel zilnic

Agregarea datelor la o granularitate mai mare este o sarcină analitică frecventă. Uneori avem un set de date cu marcaje temporale precise și avem nevoie să vizualizăm rezultatele agregate. În SQL Server, există mai multe tehnici disponibile, în funcție de granularitatea dorită.

În aceste exerciții, vom analiza un spa fictiv. Managementul spa-ului a trimis cupoane potențialilor clienți noi în perioada 16–20 iunie 2020 și ar dori să vadă dacă această campanie a generat vizite noi.

În acest exercițiu, vom examina una dintre cele mai simple tehnici de reducere a granularității: conversia unui tip de date DATETIME2 sau DATETIME într-un tip de date care conține doar data, fără componentă de timp – tipul DATE.

Acest exercițiu face parte din cursul

Analiza seriilor de timp în SQL Server

Vezi cursul

Instrucțiuni pentru exercițiu

  • Reduce granularitatea orelor de început ale vizitelor clienților la nivel zilnic și agregează rezultatele.
  • Completează clauza GROUP BY cu toate valorile neagregate din clauza SELECT (fără aliasuri de tipul AS Day).

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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;
Editează și rulează codul