Aan de slagGa gratis aan de slag

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

Cursus bekijken

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;
Code bewerken en uitvoeren