LoslegenKostenlos loslegen

Die drei vorherigen Perioden ansehen

Die Fensterfunktionen LAG() und LEAD() ermöglichen es uns, jeweils rückwärts bzw. vorwärts in der Zeit zu schauen. So können wir Periodenvergleiche mit einer einzigen, einfachen Abfrage durchführen. Jeder Aufruf von LAG() oder LEAD() liefert entweder NULL oder eine einzelne Zeile zurück. Wenn du mehrere Perioden zurück (oder voraus) sehen möchtest, kannst du mehrere Aufrufe von LAG() oder LEAD() einbauen.

In dieser Übung wollen wir die Anzahl der Sicherheitsvorfälle pro Tag für die Vorfalltypen 1 und 2 im Juli 2019 vergleichen, konkret für den Zeitraum vom 2. Juli bis zum 31. Juli. Das Management möchte ein rollierendes Vier-Tage-Fenster je Vorfalltyp sehen, um eventuelle Trends zu erkennen, beginnend zwei Tage davor und mit einem Blick einen Tag in die Zukunft.

Diese Übung ist Teil des Kurses

Zeitreihenanalyse in SQL Server

Kurs anzeigen

Anleitung zur Übung

  • Ergänze das SQL, um die Anzahl der Vorfälle von vor zwei Perioden zurückzugeben.
  • Ergänze das SQL, um die Anzahl der Vorfälle aus der vorherigen Periode zurückzugeben.
  • Ergänze das SQL, um die Anzahl der Vorfälle aus der nächsten Periode zurückzugeben.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

SELECT
	ir.IncidentDate,
	ir.IncidentTypeID,
    -- Fill in two periods ago
	___(ir.___, ___) OVER (
		PARTITION BY ir.IncidentTypeID
		ORDER BY ir.IncidentDate
	) AS Trailing2Day,
    -- Fill in one period ago
	___(ir.___, ___) OVER (
		PARTITION BY ir.IncidentTypeID
		ORDER BY ir.IncidentDate
	) AS Trailing1Day,
	ir.NumberOfIncidents AS CurrentDayIncidents,
    -- Fill in next period
	___(ir.___, ___) OVER (
		PARTITION BY ir.IncidentTypeID
		ORDER BY ir.IncidentDate
	) AS NextDay
FROM dbo.IncidentRollup ir
WHERE
	ir.IncidentDate >= '2019-07-01'
	AND ir.IncidentDate <= '2019-07-31'
	AND ir.IncidentTypeID IN (1, 2)
ORDER BY
	ir.IncidentTypeID,
	ir.IncidentDate;
Code bearbeiten und ausführen