Comece agoraComece grátis

Gerar um resumo com ROLLUP

O operador ROLLUP funciona melhor quando seus atributos que não são medidas têm uma estrutura hierárquica. Caso contrário, você pode acabar com níveis de agregação estranhos, que não fazem muito sentido.

Neste cenário, queremos agregar o número total de incidentes de segurança na tabela IncidentRollup. A gestão gostaria de ver os dados agregados pela combinação de ano-calendário, trimestre-calendário e mês-calendário. Além disso, também querem ver linhas agregadas separadas para ano-calendário mais trimestre-calendário, bem como linhas agregadas separadas para cada ano-calendário. Por fim, querem mais uma linha com o total geral. Dá para fazer tudo isso em uma única operação.

Este exercicio faz parte do curso

Análise de Séries Temporais no SQL Server

Ver curso

Instruções do exercicio

  • Complete a definição de NumberOfIncidents, somando o número de incidentes em cada intervalo.
  • Preencha a parte do GROUP BY, incluindo o operador WITH ROLLUP.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

SELECT
	c.CalendarYear,
	c.CalendarQuarterName,
	c.CalendarMonth,
    -- Include the sum of incidents by day over each range
	___(ir.___) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
	INNER JOIN dbo.Calendar c
		ON ir.IncidentDate = c.Date
WHERE
	ir.IncidentTypeID = 2
GROUP BY
	-- GROUP BY needs to include all non-aggregated columns
	c.___,
	c.___,
	c.___
-- Fill in your grouping operator
WITH ___
ORDER BY
	c.CalendarYear,
	c.CalendarQuarterName,
	c.CalendarMonth;
Editar e Executar Código