Mulai sekarangMulai gratis

Menghitung moving average

Alih-alih melihat total berjalan dari awal waktu hingga sekarang, manajemen ingin melihat rata-rata jumlah insiden selama 7 hari terakhir—yaitu dimulai 6 hari yang lalu dan berakhir pada tanggal saat ini. Karena ini berada dalam kerangka yang ditentukan dan berubah sepanjang kueri, ini disebut moving average.

SQL Server tidak memiliki kemampuan untuk melihat rentang waktu dalam window function, jadi kita perlu berasumsi bahwa ada satu baris per hari dan menggunakan klausa ROWS.

Latihan ini merupakan bagian dari kursus

Analisis Deret Waktu di SQL Server

Lihat Kursus

Instruksi latihan

  • Lengkapi window function yang benar untuk melakukan moving average mulai dari 6 hari yang lalu hingga hari ini (baris saat ini).
  • Lengkapi window frame, termasuk klausa ROWS, window frame preceding, dan window frame following.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

SELECT
	ir.IncidentDate,
	ir.IncidentTypeID,
	ir.NumberOfIncidents,
    -- Fill in the correct window function
	___(ir.NumberOfIncidents) OVER (
		PARTITION BY ir.IncidentTypeID
		ORDER BY ir.IncidentDate
      	-- Fill in the three parts of the window frame
		___ BETWEEN ___ AND ___
	) AS MeanNumberOfIncidents
FROM dbo.IncidentRollup ir
	INNER JOIN dbo.Calendar c
		ON ir.IncidentDate = c.Date
WHERE
	c.CalendarYear = 2019
	AND c.CalendarMonth IN (7, 8)
	AND ir.IncidentTypeID = 1
ORDER BY
	ir.IncidentTypeID,
	ir.IncidentDate;
Edit dan Jalankan Kode