Začněte nyníZačněte zdarma

Výpočet klouzavých průměrů

Místo průběžného součtu od počátku záznamu až do teď by vedení rádo vidělo průměrný počet incidentů za posledních 7 dní – tedy od 6 dní nazpět až po aktuální datum. Protože jde o výpočet v určitém rámci, který se v průběhu dotazu mění, nazývá se tento přístup klouzavý průměr.

SQL Server neumožňuje pracovat s časovými rozsahy v okenních funkcích, takže budeme předpokládat, že na každý den připadá právě jeden řádek, a použijeme klauzuli ROWS.

Toto cvičení je součástí kurzu

Time Series Analysis in SQL Server

Zobrazit kurz

Pokyny k cvičení

  • Doplň správnou okenní funkci pro výpočet klouzavého průměru za období od 6 dní nazpět až po dnešek (aktuální řádek).
  • Doplň definici okenního rámce včetně klauzule ROWS, počtu předcházejících řádků a následujících řádků.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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;
Upravit a spustit kód