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

Обобщение данных за временной период

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

Основные агрегатные функции, которые мы будем использовать: COUNT(), SUM(), MIN() и MAX(). В следующем упражнении мы рассмотрим ряд статистических агрегатных функций.

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

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

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

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

  • Подставьте подходящую агрегатную функцию, ориентируясь на название столбца. Выберите одну из следующих для каждого случая: COUNT(), SUM(), MIN() или MAX().

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

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

-- Fill in the appropriate aggregate functions
SELECT
	it.IncidentType,
	___(1) AS NumberOfRows,
	___(ir.NumberOfIncidents) AS TotalNumberOfIncidents,
	___(ir.NumberOfIncidents) AS MinNumberOfIncidents,
	___(ir.NumberOfIncidents) AS MaxNumberOfIncidents,
	___(ir.IncidentDate) As MinIncidentDate,
	___(ir.IncidentDate) AS MaxIncidentDate
FROM dbo.IncidentRollup ir
	INNER JOIN dbo.IncidentType it
		ON ir.IncidentTypeID = it.IncidentTypeID
WHERE
	ir.IncidentDate BETWEEN '2019-08-01' AND '2019-10-31'
GROUP BY
	it.IncidentType;
Редактировать и запускать код