Günlük taneliğe downsample et
Veriyi daha yüksek bir taneliğe yuvarlamak yaygın bir analitik görevdir. Belirli zaman damgalarına sahip bir veri setimiz olabilir ve bu verilerde özet sonuçları görmek isteyebiliriz. SQL Server'da, hedeflediğin taneliğe bağlı olarak birden fazla teknik vardır.
Bu egzersizlerde kurgusal bir gün spasına bakacağız. Spa yönetimi, 16–20 Haziran 2020 dönemi için potansiyel yeni müşterilere kuponlar gönderdi ve bu kampanyanın yeni ziyaretleri tetikleyip tetiklemediğini görmek istiyor.
Bu egzersizde, en basit downsampling tekniklerinden birine bakacağız: DATETIME2 veya DATETIME veri türünü, saat bileşeni olmadan yalnızca tarihi tutan DATE türüne dönüştürmek.
Bu egzersiz, kursun bir parçasıdır
SQL Server'da Zaman Serisi Analizi
Egzersiz talimatları
- Müşteri ziyaret başlangıç saatlerini günlük taneliğe downsample et ve sonuçları özetle.
- SELECT ifadesindeki toplulaştırılmamış tüm değerleri (örneğin
AS Daygibi takma adlar olmadan) GROUP BY ifadesine ekle.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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;