Перегляд попередніх і майбутніх періодів
Віконні функції 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;