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
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;