Voortschrijdend gemiddelde berekenen
In plaats van te kijken naar een cumulatief totaal vanaf het begin tot nu, wil het management het gemiddelde aantal incidenten over de afgelopen 7 dagen zien—dus vanaf 6 dagen geleden tot en met vandaag. Omdat dit gebeurt over een specifiek venster dat verandert tijdens onze query, noemen we dit een voortschrijdend gemiddelde.
SQL Server kan in windowfuncties niet met tijdsintervallen werken, dus we gaan ervan uit dat er één rij per dag is en gebruiken de clausule ROWS.
Deze oefening maakt deel uit van de cursus
Tijdreeksanalyse in SQL Server
Oefeninstructies
- Vul de juiste windowfunctie in om een voortschrijdend gemiddelde te berekenen vanaf 6 dagen geleden tot en met vandaag (de huidige rij).
- Vul het window frame in, inclusief de clausule
ROWS, de voorgaande rijen en de volgende rijen voor het frame.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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;