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

Нарастающие итоги с помощью SUM()

Одно из наиболее эффективных применений оконных функций — вычисление нарастающих итогов: накопленного значения определённого показателя за выбранный период времени. В этом упражнении нужно использовать оконную функцию, чтобы подсчитать количество инцидентов по каждой дате и типу инцидента за июль 2019 года, а также получить нарастающий итог общего числа инцидентов по типу. Оконная функция позволит решить эту задачу в рамках одного запроса.

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

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

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

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

  • Укажите подходящую оконную функцию.
  • Заполните предложение PARTITION BY в оконной функции, выполнив секционирование по идентификатору типа инцидента.
  • Заполните предложение ORDER BY в оконной функции, упорядочив данные по дате инцидента (в порядке по умолчанию — по возрастанию).

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

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

SELECT
	ir.IncidentDate,
	ir.IncidentTypeID,
	ir.NumberOfIncidents,
    -- Get the total number of incidents
	___(ir.NumberOfIncidents) OVER (
      	-- Do this for each incident type ID
		PARTITION BY ir.___
      	-- Sort by the incident date
		ORDER BY ir.___
	) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
	INNER JOIN dbo.Calendar c
		ON ir.IncidentDate = c.Date
WHERE
	c.CalendarYear = 2019
	AND c.CalendarMonth = 7
	AND ir.IncidentTypeID IN (1, 2)
ORDER BY
	ir.IncidentTypeID,
	ir.IncidentDate;
Редактировать и запускать код