Mulai sekarangMulai gratis

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

Lihat Kursus

Instruksi latihan

  • Lengkapi segmen GROUP BY menggunakan GROUPING 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;
Edit dan Jalankan Kode