Mulai sekarangMulai gratis

Buat ringkasan dengan ROLLUP

Operator ROLLUP bekerja paling baik ketika atribut non-ukuran Anda bersifat hierarkis. Jika tidak, Anda dapat berakhir dengan tingkat agregasi yang aneh dan tidak masuk akal secara intuitif.

Dalam skenario ini, kita ingin mengagregasikan total jumlah insiden keamanan dalam tabel IncidentRollup. Manajemen ingin melihat data yang diagregasi berdasarkan kombinasi tahun kalender, kuartal kalender, dan bulan kalender. Selain itu, mereka juga ingin melihat baris agregat terpisah untuk tahun kalender plus kuartal kalender, serta baris agregat terpisah untuk setiap tahun kalender. Terakhir, mereka menginginkan satu baris lagi untuk total keseluruhan. Kita dapat melakukan semua ini dalam satu operasi.

Latihan ini merupakan bagian dari kursus

Analisis Deret Waktu di SQL Server

Lihat Kursus

Instruksi latihan

  • Lengkapi definisi NumberOfIncidents dengan menjumlahkan jumlah insiden di setiap rentang.
  • Lengkapi segmen GROUP BY, termasuk operator WITH ROLLUP.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

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;
Edit dan Jalankan Kode