EmpezarEmpieza gratis

Totales acumulados con SUM()

Uno de los usos más potentes de las funciones de ventana es calcular totales acumulados: un recuento progresivo de un valor concreto a lo largo de un periodo de tiempo. Aquí nos gustaría usar una función de ventana para calcular cuántos incidentes han ocurrido en cada fecha y tipo de incidente en julio de 2019, así como un recuento acumulado del número total de incidentes por tipo de incidente. Una función de ventana nos permitirá resolver este problema en una sola consulta.

Este ejercicio forma parte del curso

Análisis de series temporales en SQL Server

Ver curso

Instrucciones del ejercicio

  • Completa la función de ventana correcta.
  • Completa la cláusula PARTITION BY en la función de ventana, particionando por el ID del tipo de incidente.
  • Completa la cláusula ORDER BY en la función de ventana, ordenando por la fecha del incidente (en su orden ascendente predeterminado).

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

SELECT
	ir.IncidentDate,
	ir.IncidentTypeID,
	ir.NumberOfIncidents,
    -- Get the total number of incidents
	___(ir.NumberOfIncidents) OVER (
      	-- Do this for each incident type ID
		PARTITION BY ir.___
      	-- Sort by the incident date
		ORDER BY ir.___
	) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
	INNER JOIN dbo.Calendar c
		ON ir.IncidentDate = c.Date
WHERE
	c.CalendarYear = 2019
	AND c.CalendarMonth = 7
	AND ir.IncidentTypeID IN (1, 2)
ORDER BY
	ir.IncidentTypeID,
	ir.IncidentDate;
Editar y ejecutar código