Buat pengelompokan kustom dengan GROUPING SETS
Operator GROUPING SETS memungkinkan kita mendefinisikan tingkat agregasi spesifik yang kita inginkan.
Dalam skenario ini, manajemen ingin melihat sesuatu yang mirip dengan ROLLUP tetapi dengan informasi yang tidak sebanyak itu. Alih-alih menampilkan setiap tingkat agregasi dalam hierarki, manajemen ingin melihat tiga tingkat: total keseluruhan; per tahun; serta per tahun, kuartal, dan bulan.
Latihan ini merupakan bagian dari kursus
Analisis Deret Waktu di SQL Server
Instruksi latihan
- Lengkapi segmen
GROUP BYmenggunakanGROUPING SETS. Kita ingin melihat: - Satu baris untuk setiap kombinasi tahun, kuartal, dan bulan (dalam urutan hierarkis tersebut)
- Satu baris untuk setiap tahun
- Satu baris dengan total keseluruhan (yaitu, grup kosong)
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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;