ÎncepețiÎncepe gratuit

Vizualizarea perioadelor anterioare și viitoare

Funcțiile de fereastră LAG() și LEAD() ne oferă posibilitatea de a privi înapoi, respectiv înainte în timp. Astfel, putem compara datele perioadă-cu-perioadă într-o singură interogare simplă.

În acest exercițiu, vrem să comparăm numărul de incidente de securitate pe zi pentru tipurile de incidente 1 și 2 din iulie 2019, mai exact pentru perioada cuprinsă între 2 iulie și 31 iulie.

Acest exercițiu face parte din cursul

Analiza seriilor de timp în SQL Server

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează funcția de fereastră care returnează numărul de incidente din ziua anterioară, partiționat după ID-ul tipului de incident și ordonat după data incidentului.
  • Completează funcția de fereastră care returnează numărul de incidente din ziua următoare, partiționat după ID-ul tipului de incident și ordonat după data incidentului.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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;
Editează și rulează codul