Visa föregående och kommande perioder
Fönsterfunktionerna LAG() och LEAD() gör det möjligt att titta bakåt respektive framåt i tiden. Det ger möjlighet att jämföra data period för period i en enda, enkel fråga.
I den här övningen vill vi jämföra antalet säkerhetsincidenter per dag för incidenttyperna 1 och 2 under juli 2019, specifikt perioden från den 2 juli till den 31 juli.
Den här övningen är en del av kursen
Tidsserieanalys i SQL Server
Övningsinstruktioner
- Fyll i fönsterfunktionen för att returnera föregående dags antal incidenter, partitionerat efter incidenttyp-ID och ordnat efter incidentdatum.
- Fyll i fönsterfunktionen för att returnera nästa dags antal incidenter, partitionerat efter incidenttyp-ID och ordnat efter incidentdatum.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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;