Oracle Pivot

Oracle Pivot
Esta posta. Esta cláusula permite que você reorganize as linhas de uma mesa nas colunas. Isso garante que você possa obter resultados de uma determinada consulta em um formato de crosstab.

Introdução ao Oracle Pivoting

Por padrão, bancos de dados relacionais armazenam informações em formato tabular em pares de valor da coluna. No entanto, em alguns casos, você pode desviar o layout e a formatação dos dados para representar um tipo diferente de informação.

É aqui que o giratório entra no lugar. Introduzido no Oracle 11c, a cláusula pivô pode tomar um determinado formato tabular e realizar uma operação de rotação. Isso pode então converter as linhas em colunas.

Sintaxe de consulta

Abaixo está uma sintaxe simples que demonstra o uso da cláusula pivô em um banco de dados Oracle.

Selecione column_list
De table_name
pivô [xml] (
pivot_expression
pivot_for_expression
pivot_in_expression
);

A sintaxe acima contém os seguintes elementos:

  1. Column_list - Isso especifica a coluna que você deseja selecionar na tabela fornecida.
  2. pivot_expression - isso define as colunas que você deseja agregar. Isso executa um grupo implícito por operação com base nas colunas não especificadas na expressão e nas colunas definidas no parâmetro pivot_in_expression.
  3. pivot_for_expression -This descreve a coluna que desejamos agrupar ou girar.
  4. pivot_in_expression - isso define as colunas do filtro para o pivot_for_expression.

Vejamos um exemplo de tabela de oracle girando.

Oracle Pivoting Exemplo de ilustração

Suponha que tenhamos uma tabela de pedidos mantendo informações, conforme mostrado nas consultas abaixo:

ordens createTable
(
idNumberNotNull,
Cliente Varchar2 (50) NotNull,
order_datedate,
product_idNumber,
número de quantidade,
número de preço,
RESTRINGORDORDED_PK Chave primária (ID)
);
Insira em pedidos (ID, Cliente, Order_date, Product_id, Quantidade, Preço)
Valores (1, 'beatriz', data '2022-10-10', 4500, 45, 56);
Insira em pedidos (ID, Cliente, Order_date, Product_id, Quantidade, Preço)
Valores (2, 'Ali', data '2022-10-10', 5400, 65, 109);
Insira em pedidos (ID, Cliente, Order_date, Product_id, Quantidade, Preço)
Valores (3, 'Gabriel', Data '2022-10-11', 6400, 405, 586);
Insira em pedidos (ID, Cliente, Order_date, Product_id, Quantidade, Preço)
Valores (4, 'beatriz', data '2022-10-11', 5800, 55, 550);
Insira em pedidos (ID, Cliente, Order_date, Product_id, Quantidade, Preço)
Valores (5, 'beatriz', data '2022-10-12', 4506, 46, 700);
Insira em pedidos (ID, Cliente, Order_date, Product_id, Quantidade, Preço)
Valores (6, 'Gabriel', Data '2022-10-11', 9001, 450, 5600);

Tabela de saída:

Exemplo

O exemplo abaixo usa a cláusula pivô para informações do cliente e o produto adquirido.

SELECIONE DE
(
Selecione Cliente, Product_id de pedidos
)
pivô
(
Count (product_id)
Para product_id em (4500, 6400, 5800, 4506, 9001)
)
Pedido pelo cliente;

Um exemplo de tabela resultante é como mostrado:

Exemplo 2 - Colunas de alias

Exemplo de colunas de aliasing:

SELECIONE DE
(
Selecione Cliente, Product_id de pedidos
)
pivô
(
Count (product_id)
Para Product_id In ('T-shirts' 4500, 'Cooler Case' 6400, 'Audio Mic' 5800, 'Android Phone' 4506, 'Monitor Curved' 9001)
)
Pedido pelo cliente;

Conclusão

Este artigo abrange o básico de trabalhar com o comando pivot nos bancos de dados Oracle.