GROUPING SETS ile özel gruplamalar oluştur
GROUPING SETS operatörü, istediğimiz belirli toplulaştırma düzeylerini tanımlamamıza olanak tanır.
Bu senaryoda, yönetim ROLLUP'a benzer bir şey görmek istiyor ama bu kadar fazla bilgiye gerek yok. Hiyerarşideki her toplulaştırma düzeyini göstermek yerine üç düzey yeterli: genel toplamlar; yıla göre; ve yıl, çeyrek ve aya göre.
Bu egzersiz, kursun bir parçasıdır
SQL Server'da Zaman Serisi Analizi
Egzersiz talimatları
GROUP BYbölümünüGROUPING SETSkullanarak doldur. Şunları görmek istiyoruz:- Yıl, çeyrek ve ayın (bu hiyerarşik sırayla) her kombinasyonu için bir satır
- Her yıl için bir satır
- Genel toplamlar için bir satır (yani, boş bir grup)
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
SELECT
c.CalendarYear,
c.CalendarQuarterName,
c.CalendarMonth,
SUM(ir.NumberOfIncidents) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
INNER JOIN dbo.Calendar c
ON ir.IncidentDate = c.Date
WHERE
ir.IncidentTypeID = 2
-- Fill in your grouping operator here
GROUP BY ___ ___
(
-- Group in hierarchical order: calendar year,
-- calendar quarter name, calendar month
(___, ___, ___),
-- Group by calendar year
(___),
-- This remains blank; it gives us the grand total
()
)
ORDER BY
c.CalendarYear,
c.CalendarQuarterName,
c.CalendarMonth;