LoslegenKostenlos loslegen

Gleitende Durchschnitte berechnen

Anstatt einen kumulativen Gesamtwert vom Beginn bis heute zu betrachten, möchte das Management die durchschnittliche Anzahl von Vorfällen der letzten 7 Tage sehen – also beginnend vor 6 Tagen und endend am aktuellen Datum. Da sich dieser festgelegte Rahmen im Verlauf unserer Abfrage verschiebt, nennt man das einen gleitenden Durchschnitt.

SQL Server kann in Window-Funktionen keine Zeitbereiche verwenden, daher nehmen wir an, dass es eine Zeile pro Tag gibt, und nutzen die ROWS-Klausel.

Diese Übung ist Teil des Kurses

Zeitreihenanalyse in SQL Server

Kurs anzeigen

Anleitung zur Übung

  • Ergänze die richtige Window-Funktion, um einen gleitenden Durchschnitt von vor 6 Tagen bis heute (der aktuellen Zeile) zu berechnen.
  • Ergänze den Fensterrahmen, inklusive der ROWS-Klausel, des „window frame preceding“ und des „window frame following“.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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 bearbeiten und ausführen