Kom igångKom igång gratis

Nedsampla till daglig granularitet

Att summera data till en grövre granularitet är en vanlig analytisk uppgift. Du kan ha en datamängd med specifika tidsstämplar och behöva se aggregerade resultat. I SQL Server finns flera tekniker tillgängliga beroende på vilken granularitet du vill uppnå.

I dessa övningar tittar vi på ett fiktivt dagsspa. Spa-ledningen skickade ut kuponger till potentiella nya kunder under perioden 16–20 juni 2020 och vill se om kampanjen ledde till fler besök.

I den här övningen tittar vi på en av de enklaste nedsamplingstekniker: att konvertera en datatyp av typen DATETIME2 eller DATETIME till en datatyp som bara innehåller ett datum utan tidskomponent – det vill säga typen DATE.

Den här övningen är en del av kursen

Tidsserieanalys i SQL Server

Visa kurs

Övningsinstruktioner

  • Nedsampla kundernas besöksstartider till daglig granularitet och aggregera resultaten.
  • Fyll i GROUP BY-satsen med alla icke-aggregerade värden i SELECT-satsen (men utan alias som AS Day).

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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;
Redigera och kör kod