Totais acumulados com SUM()
Um dos usos mais poderosos das funções de janela é calcular totais acumulados: um acompanhamento contínuo de um determinado valor ao longo de um período. Aqui, queremos usar uma função de janela para calcular quantos incidentes ocorreram em cada data e tipo de incidente em julho de 2019, além de um acumulado do número total de incidentes por tipo de incidente. Uma função de janela vai ajudar você a resolver esse problema em uma única consulta.
Este exercício faz parte do curso
Análise de Séries Temporais no SQL Server
Instruções do exercício
- Preencha com a função de janela correta.
- Complete a cláusula
PARTITION BYna função de janela, particionando pelo ID do tipo de incidente. - Complete a cláusula
ORDER BYna função de janela, ordenando pela data do incidente (na ordem padrão, crescente).
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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;