Oracle: Pivot Table
- Siltech Consult
- 7 de out. de 2019
- 1 min de leitura
Problemas: Criar um resultado com Pivot Table em um simples select no Oracle.
Até a versão 10g era difícil montar este cenário caso não se soubesse de antemão os valores que resultariam nas colunas. À partir da versão 11g a situação ficou fácil com o uso da cláusula PIVOT.
No exemplo, abaixo, tenho uma tabela de agendamentos. A mesma possui uma coluna (tipoagendamento). Caso queira saber o total de agendamento por ano, por tipo de agendamento, bastaria executar o seguinte sql:
Porém, caso queira que as colunas ANO se transformem em colunas (PIVOT) ANTES do 11G usaria DECODE, deixando o SQL assim:
Este método funciona bem porém com uma grande desvantagem:Deve-se incluir todas as colunas que se deseja e o código costuma ficar um pouco `poluido`.
À partir da versão 11g é possível usar o método PIVOT que além de simplificar dinamiza, uma vez que não preciso duplicar comandos DECODE para cada colunas que será sumarizada:
Dúvidas? silverio@siltechconsult.com.br

Comentários