EmpezarEmpieza gratis

Ver los tres periodos anteriores

Las funciones de ventana LAG() y LEAD() nos permiten mirar hacia atrás o hacia adelante en el tiempo, respectivamente. Esto nos da la posibilidad de comparar datos periodo a periodo en una sola consulta sencilla. Cada llamada a LAG() o LEAD() devuelve NULL o una sola fila. Si quieres ver varios periodos hacia atrás, puedes incluir múltiples llamadas a LAG() o LEAD().

En este ejercicio, queremos comparar el número de incidentes de seguridad por día para los tipos de incidente 1 y 2 durante julio de 2019, específicamente el periodo que empieza el 2 de julio y termina el 31 de julio. La dirección quiere ver una ventana móvil de cuatro días por tipo de incidente para detectar posibles tendencias significativas, empezando dos días antes y mirando un día por delante.

Este ejercicio forma parte del curso

Análisis de series temporales en SQL Server

Ver curso

Instrucciones del ejercicio

  • Completa el SQL para devolver el número de incidentes de hace dos periodos.
  • Completa el SQL para devolver el número de incidentes del periodo anterior.
  • Completa el SQL para devolver el número de incidentes del periodo siguiente.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

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;
Editar y ejecutar código