ROLLUP ile bir özet oluştur
ROLLUP işleci, ölçüm dışındaki özniteliklerin hiyerarşik olduğu durumlarda en iyi sonucu verir. Aksi takdirde, sezgisel olarak anlamlı olmayan garip bir toplama düzeyiyle karşılaşabilirsin.
Bu senaryoda, IncidentRollup tablosundaki toplam güvenlik olaylarını toplamak istiyoruz. Yönetim, verileri takvim yılı, takvim çeyreği ve takvim ayı kombinasyonuna göre toplanmış şekilde görmek istiyor. Buna ek olarak, takvim yılı artı takvim çeyreği için ayrı toplu satırlar ile her bir takvim yılı için ayrı toplu satırlar da istiyorlar. Son olarak, genel toplam için bir satır daha istiyorlar. Bunların hepsini tek bir işlemle yapabiliriz.
Bu egzersiz, kursun bir parçasıdır
SQL Server'da Zaman Serisi Analizi
Egzersiz talimatları
- Her aralık için olay sayısını toplayarak
NumberOfIncidentstanımını tamamla. WITH ROLLUPişleci de dahil olmak üzereGROUP BYbölümünü doldur.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
SELECT
c.CalendarYear,
c.CalendarQuarterName,
c.CalendarMonth,
-- Include the sum of incidents by day over each range
___(ir.___) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
INNER JOIN dbo.Calendar c
ON ir.IncidentDate = c.Date
WHERE
ir.IncidentTypeID = 2
GROUP BY
-- GROUP BY needs to include all non-aggregated columns
c.___,
c.___,
c.___
-- Fill in your grouping operator
WITH ___
ORDER BY
c.CalendarYear,
c.CalendarQuarterName,
c.CalendarMonth;