НачатьНачать бесплатно

Данные за предыдущий и следующий периоды

Оконные функции LAG() и LEAD() позволяют обращаться к данным из прошлых или будущих периодов соответственно. Это даёт возможность сравнивать данные по периодам в одном простом запросе.

В этом упражнении нужно сравнить количество инцидентов безопасности по дням для типов 1 и 2 за июль 2019 года — конкретно за период с 2 по 31 июля.

Это упражнение является частью курса

Анализ временных рядов в SQL Server

Посмотреть курс

Инструкции к упражнению

  • Заполните оконную функцию, которая возвращает количество инцидентов за предыдущий день, разбитых на разделы по идентификатору типа инцидента и упорядоченных по дате инцидента.
  • Заполните оконную функцию, которая возвращает количество инцидентов за следующий день, разбитых на разделы по идентификатору типа инцидента и упорядоченных по дате инцидента.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

SELECT
	ir.IncidentDate,
	ir.IncidentTypeID,
    -- Get the prior day's number of incidents
	___(ir.___, ___) OVER (
      	-- Partition by incident type ID
		PARTITION BY ir.___
      	-- Order by incident date
		ORDER BY ir.___
	) AS PriorDayIncidents,
	ir.NumberOfIncidents AS CurrentDayIncidents,
    -- Get the next day's number of incidents
	___(ir.___, ___) OVER (
      	-- Partition by incident type ID
		PARTITION BY ir.___
      	-- Order by incident date
		ORDER BY ir.___
	) AS NextDayIncidents
FROM dbo.IncidentRollup ir
WHERE
	ir.IncidentDate >= '2019-07-02'
	AND ir.IncidentDate <= '2019-07-31'
	AND ir.IncidentTypeID IN (1, 2)
ORDER BY
	ir.IncidentTypeID,
	ir.IncidentDate;
Редактировать и запускать код