Обобщение данных за временной период
В 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;