ÎncepețiÎncepe gratuit

Calcularea mediilor mobile

În loc să analizeze un total cumulat de la început până în prezent, managementul ar dori să vadă numărul mediu de incidente din ultimele 7 zile – adică începând cu 6 zile în urmă și terminând cu data curentă. Deoarece acest calcul se aplică unui cadru specificat care se modifică pe parcursul interogării, acesta se numește medie mobilă.

SQL Server nu are capacitatea de a analiza intervale de timp în funcțiile fereastră, deci va trebui să presupunem că există un singur rând pe zi și să folosim clauza ROWS.

Acest exercițiu face parte din cursul

Analiza seriilor de timp în SQL Server

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează funcția fereastră potrivită pentru a calcula o medie mobilă începând cu 6 zile în urmă și până în ziua curentă (rândul curent).
  • Completează cadrul ferestrei, incluzând clauza ROWS, numărul de rânduri precedente și numărul de rânduri următoare.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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;
Editează și rulează codul