Zacznij terazZacznij za darmo

Obliczanie średniej kroczącej

Zamiast analizować sumę bieżącą narastającą od początku do chwili obecnej, kierownictwo chciałoby zobaczyć średnią liczbę incydentów z ostatnich 7 dni – czyli od 6 dni temu do dnia bieżącego. Ponieważ obliczenia dotyczą określonego okna przesuwającego się w trakcie wykonywania zapytania, mówimy tu o średniej kroczącej.

SQL Server nie obsługuje zakresów czasowych w funkcjach okna, dlatego przyjmiemy założenie, że każdy dzień odpowiada dokładnie jednemu wierszowi, i skorzystamy z klauzuli ROWS.

To ćwiczenie jest częścią kursu

Analiza szeregów czasowych w SQL Server

Zobacz kurs

Instrukcje do ćwiczenia

  • Uzupełnij odpowiednią funkcję okna, która oblicza średnią kroczącą dla okresu od 6 dni temu do dnia bieżącego (bieżący wiersz).
  • Uzupełnij definicję ramki okna: dodaj klauzulę ROWS, liczbę poprzednich wierszy oraz liczbę następnych wierszy.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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;
Edytuj i uruchom kod