Inizia subitoInizia gratis

Riduci la granularità al livello giornaliero

Raggruppare i dati a una granularità superiore è un'attività analitica comune. Possiamo avere un insieme di dati con timestamp specifici e la necessità di osservare risultati aggregati. In SQL Server, sono disponibili diverse tecniche a seconda della granularità desiderata.

Per questi esercizi, considereremo una spa fittizia. La direzione della spa ha inviato coupon a potenziali nuovi clienti per il periodo dal 16 al 20 giugno 2020 e vorrebbe capire se questa campagna ha stimolato nuove visite.

In questo esercizio, vedremo una delle tecniche di downsampling più semplici: convertire un tipo di dato DATETIME2 o DATETIME in un tipo di dato con sola data e senza componente oraria: il tipo DATE.

Questo esercizio fa parte del corso

Analisi delle serie temporali in SQL Server

Visualizza corso

Istruzioni dell'esercizio

  • Riduci al livello giornaliero gli orari di inizio visita dei clienti e aggrega i risultati.
  • Compila la clausola GROUP BY con tutti i valori non aggregati presenti nella clausola SELECT (ma senza alias come AS Day).

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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;
Modifica ed esegui il codice