Наростальні підсумки з 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;