Posts Tagged título

[ORACLE] Agrupando e somando com um título

Para conseguirmos criar de uma maneira bem rápida uma somatoria com base em um group by (numérico) e ainda exibindo uma string informativa (total) sem precisar criar union ou qualquer outro recurso mais complexo, basta usarmos os comandos CASE GROUPING no retorno e ROLLUP no agrupamento. O CASE GROUPING verifica a necessidade de inserir o conteúdo do campo ou um valor string conforme as condições (= 1 quando chegar no “registro” somatório) e o ROLLUP usado junto com o GROUP BY calcula o total em si.

Veja exemplo:

1
2
3
4
5
6
7
SELECT CASE GROUPING (CAMPO_AGRUPADOR)
		WHEN 1 THEN 'TOTAL_GERAL'
		ELSE CAMPO_AGRUPADOR
      END AS CATEGORIA,
	COUNT(CAMPO_SOMADO) AS SUB_TOTAL
FROM TABELA
GROUP BY ROLLUP(CAMPO_AGRUPADOR);

, , , , ,

Nenhum comentário.