ПочатиПочніть безкоштовно

Обчислення ковзних середніх

Замість накопичувальної суми від початку часів донині керівництво хоче бачити середню кількість інцидентів за останні 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;
Редагувати та запускати код