Inizia subitoInizia gratis

Calcolare le medie mobili

Invece di considerare un totale cumulato dall’inizio fino a oggi, il management vorrebbe vedere il numero medio di incidenti negli ultimi 7 giorni — cioè a partire da 6 giorni fa fino alla data odierna. Poiché questo riguarda un intervallo specifico che cambia nel corso della query, si parla di media mobile.

SQL Server non consente di usare intervalli di tempo nelle funzioni finestra, quindi dobbiamo assumere che ci sia una riga per giorno e utilizzare la clausola ROWS.

Questo esercizio fa parte del corso

Analisi delle serie temporali in SQL Server

Visualizza corso

Istruzioni dell'esercizio

  • Inserisci la funzione finestra corretta per calcolare una media mobile che parte da 6 giorni fa fino a oggi (la riga corrente).
  • Compila il frame della finestra, includendo la clausola ROWS, il limite precedente e il limite successivo del frame.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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;
Modifica ed esegui il codice