Обчислення ковзних середніх
Замість накопичувальної суми від початку часів донині керівництво хоче бачити середню кількість інцидентів за останні 7 днів — тобто, починаючи від 6 днів тому і закінчуючи поточною датою. Оскільки це обчислення виконується в заданій рамці, яка змінюється в межах нашого запиту, це називають ковзним середнім.
SQL Server не вміє працювати з діапазонами часу у віконних функціях, тому ми припустимо, що на кожен день припадає один рядок, і використаємо секцію ROWS.
Ця вправа є частиною курсу
Аналіз часових рядів у SQL Server
Інструкції до вправи
- Вставте правильну віконну функцію, щоб виконати обчислення ковзного середнього від 6 днів тому до сьогодні (поточний рядок).
- Заповніть рамку вікна, включно з секцією
ROWS, частиною preceding та частиною following для рамки вікна.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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;