Aan de slagGa gratis aan de slag

Vorige en volgende perioden bekijken

De vensterfuncties LAG() en LEAD() geven ons respectievelijk de mogelijkheid om terug- of vooruit te kijken in de tijd. Zo kun je periode-op-periode gegevens vergelijken in één eenvoudige query.

In deze oefening willen we het aantal beveiligingsincidenten per dag vergelijken voor incidenttypen 1 en 2 in juli 2019, specifiek de periode van 2 juli tot en met 31 juli.

Deze oefening maakt deel uit van de cursus

Tijdreeksanalyse in SQL Server

Cursus bekijken

Oefeninstructies

  • Vul de vensterfunctie in om het aantal incidenten van de vorige dag terug te geven, gepartitioneerd op incidenttype-ID en geordend op incidentdatum.
  • Vul de vensterfunctie in om het aantal incidenten van de volgende dag terug te geven, gepartitioneerd op incidenttype-ID en geordend op incidentdatum.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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;
Code bewerken en uitvoeren