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
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;