Reduza a amostragem para granularidade diária
Agrupar dados em uma granularidade mais alta é uma tarefa analítica comum. Podemos ter um conjunto de dados com carimbos de data e hora específicos e a necessidade de observar resultados agregados. No SQL Server, há várias técnicas disponíveis dependendo da granularidade desejada.
Nestes exercícios, vamos analisar um spa fictício. A gerência do spa enviou cupons para potenciais novos clientes no período de 16 a 20 de junho de 2020 e gostaria de ver se essa campanha estimulou novas visitas.
Neste exercício, veremos uma das técnicas mais simples de downsampling: converter um tipo de dado DATETIME2 ou DATETIME para um tipo de dado contendo apenas a data, sem o componente de hora: o tipo DATE.
Este exercício faz parte do curso
Análise de Séries Temporais no SQL Server
Instruções do exercício
- Reduza a amostragem dos horários de início das visitas dos clientes para a granularidade diária e agregue os resultados.
- Preencha a cláusula GROUP BY com todos os valores não agregados na cláusula SELECT (mas sem aliases como
AS Day).
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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;