ComeçarComece de graça

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 exercício faz parte do curso

Análise de Séries Temporais no SQL Server

Ver curso

Instruções do exercício

  • 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.

Exercício interativo prático

Experimente este exercício 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 o código