ÎncepețiÎncepe gratuit

Reducere la granularitate săptămânală

Conducerea dorește să vadă cât de bine a fost utilizat spa-ul în 2020. Rezultatele trebuie prezentate pe săptămâni și să includă: numărul total de minute de utilizare a facilităților, numărul de vizitatori și clientul cu cel mai mare ID din săptămâna respectivă, pentru a verifica dacă vin clienți noi.

Poți folosi funcții din SQL Server pentru a reduce granularitatea la un nivel fix. Una dintre aceste funcții este DATEPART().

Acest exercițiu face parte din cursul

Analiza seriilor de timp în SQL Server

Vezi cursul

Instrucțiuni pentru exercițiu

  • Reduce granularitatea datelor despre vizitele la spa la nivel săptămânal folosind funcția DATEPART().
  • Găsește clientul cu cel mai mare ID de client pentru o săptămână dată.
  • Completează clauza GROUP BY cu toate valorile neagregate din clauza SELECT (fără aliasuri de tipul AS Week).

Exercițiu interactiv practic

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

SELECT
	-- Downsample to a weekly grain
	___(___, dsv.CustomerVisitStart) AS Week,
	SUM(dsv.AmenityUseInMinutes) AS AmenityUseInMinutes,
	-- Find the customer with the largest customer ID for that week
	___(dsv.___) AS HighestCustomerID,
	COUNT(1) AS NumberOfAttendees
FROM dbo.DaySpaVisit dsv
WHERE
	dsv.CustomerVisitStart >= '2020-01-01'
	AND dsv.CustomerVisitStart < '2021-01-01'
GROUP BY
	-- When we use aggregation functions like SUM or COUNT,
    -- we need to GROUP BY the non-aggregated columns
	___(___, dsv.CustomerVisitStart)
ORDER BY
	Week;
Editează și rulează codul