O recurso PIVOT, introduzido no Oracle 11g, facilita a criação de relatórios de negócios e análises de dados, permitindo que os usuários transformem os dados das linhas em colunas. No Oracle 12c, essa funcionalidade continua sendo uma poderosa ferramenta para manipulação de dados. Neste artigo, vamos explorar duas aplicações práticas de consultas PIVOT no Oracle 12c.

Exemplo 1: Vendas por Ano

Imagine que temos uma tabela de vendas que registra a quantidade de produtos vendidos a cada ano. A tabela possui três colunas: ANO, PRODUTO e QUANTIDADE.

SELECT * FROM VENDAS;

ANO     PRODUTO   QUANTIDADE
----    -------   ----------
2019    Laptop    120
2019    Celular   200
2020    Laptop    150
2020    Celular   210
2021    Laptop    180
2021    Celular   230

Queremos transformar esses dados para ver a quantidade vendida de cada produto por ano em colunas separadas. Usaremos o PIVOT para realizar essa tarefa.

SELECT * FROM 
(
  SELECT ANO, PRODUTO, QUANTIDADE 
  FROM VENDAS
) 
PIVOT 
(
  SUM(QUANTIDADE)
  FOR PRODUTO IN ('Laptop', 'Celular')
);

ANO    'Laptop'  'Celular'
----   --------  ---------
2019   120       200
2020   150       210
2021   180       230

Exemplo 2: Média de Notas por Aluno

Agora, suponha que temos uma tabela chamada NOTAS que contém notas de alunos para diferentes matérias. A tabela possui três colunas: ALUNO, MATERIA e NOTA.

SELECT * FROM NOTAS;

ALUNO     MATERIA    NOTA
------    -------    ----
João      Matemática 8
João      Português  9
Maria     Matemática 9
Maria     Português  8
Pedro     Matemática 7
Pedro     Português  8

Neste caso, queremos pivô a tabela para mostrar a média das notas por matéria para cada aluno. Aqui está a consulta PIVOT para isso:

SELECT * FROM 
(
  SELECT ALUNO, MATERIA, NOTA 
  FROM NOTAS
) 
PIVOT 
(
  AVG(NOTA)
  FOR MATERIA IN ('Matemática', 'Português')
);

ALUNO   'Matemática'  'Português'
------  ------------  ----------
João    8             9
Maria   9             8
Pedro   7             8

Esses são apenas dois exemplos de como as consultas PIVOT podem ser usadas no Oracle 12c. As possibilidades são infinitas, e a flexibilidade do PIVOT é uma ferramenta poderosa para a manipulação e análise de dados.

Sobre o autor

Pós graduado em Gestão de Projetos em Tecnologia da Informação pela UNIASSELVI.
Esposo e Pai, curto atividades ao ar livre (Bike, SUP, Natação, Caminhar, Brincar no campo)

Atua com Banco de Dados Oracle desde de 2007. Atualmente é DBA Senior na FLUIDATA Serviços em Banco de dados (www.fluidata.com.br)

Principais atividade Banco de dados:

Implementação, migração, gerenciamento e suporte a produtos Oracle (8i, 9i, 10g, 11g, 12c, 18c, 19c RAC), multiplataforma;
Implementação, migração, gerenciamento e suporte a produtos Microsoft SQL Server (2008 - 2019);
Implementação, migração, gerenciamento e suporte a produtos PostgreSQL (9.3 - 14);
Monitoramento de ambientes 24×7;
Backup e Recovery;
Performance e Tuning;
Alta disponibilidade (HA);
EM database/grid/cloud control;
Conversão de databases;
Standby database / Oracle Data Guard;

Certificações:

Oracle Cloud Infrastructure 2019 Certified Architect AssociateOracle Cloud Infrastructure 2019 Certified Architect Associate
Oracle Database 12c Administrator Certified ProfessionalOracle Database 12c Administrator Certified Professional
Exadata Database Machine Models X2-2 and X2-8 Technology Support SpecialistExadata Database Machine Models X2-2 and X2-8 Technology Support Specialist
Oracle Database 11g Support SpecialistOracle Database 11g Support Specialist
OCP 11g - Oracle Certified Professional AdministratorOCP 11g - Oracle Certified Professional Administrator
OPN Certified Specialist 10g - PartnerNetwork Certified SpecialistOPN Certified Specialist 10g - PartnerNetwork Certified Specialist
Oracle Database 10g Real Applications Clusters AdministratorCertified ExpertOracle Database 10g Real Applications Clusters AdministratorCertified Expert
Oracle Database 10g: Managing Oracle on Linux Certified ExpertOracle Database 10g: Managing Oracle on Linux Certified Expert
OCP 10g - Oracle Certified Professional AdministratorOCP 10g - Oracle Certified Professional Administrator

Principais atividades DEVOPS:

PHP
ASP.net
C#
Docker
Golang
C++
Delphi
Python
HTML5
JavaScript

Você também pode gostar: