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
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 BYcu toate valorile neagregate din clauzaSELECT(fără aliasuri de tipulAS 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;