Pivote de Oracle

Pivote de Oracle
Esta publicación cubre el concepto de pivotar en Oracle Server utilizando la cláusula de pivote. Esta cláusula le permite reorganizar las filas de una mesa en columnas. Esto asegura que pueda obtener resultados de una consulta dada en un formato de crosstab.

Introducción a Oracle Pivoting

Por defecto, las bases de datos relacionales almacenan información de almacenamiento en formato tabular en pares de valor de columna. Sin embargo, en algunos casos, es posible que desee desviar el diseño y el formateo de los datos para representar un tipo diferente de información.

Aquí es donde entra en su lugar. Introducido en Oracle 11C, la cláusula de pivote puede tomar un formato tabular dado y realizar una operación de rotación. Esto puede convertir las filas en columnas.

Sintaxis de consulta

A continuación se muestra una sintaxis simple que demuestra el uso de la cláusula de pivote en una base de datos Oracle.

Seleccionar column_list
De table_name
Pivot [xml] (
pivot_expression
pivot_for_expression
pivot_in_expresión
);

La sintaxis anterior contiene los siguientes elementos:

  1. column_list: esto especifica la columna que desea seleccionar de la tabla proporcionada.
  2. pivot_expression: esto define las columnas que desea agregar. Esto realiza un grupo implícito por operación basado en las columnas no especificadas en la expresión y las columnas definidas en el parámetro PIVOT_IN_EXpression.
  3. pivot_for_expression -Esta describe la columna que deseamos agrupar o pivotar.
  4. pivot_in_expression: esto define las columnas de filtro para el pivot_for_expression.

Veamos un ejemplo de la tabla de Oracle Pivoting.

Ilustración de ejemplo de Oracle Pivoting Oracle

Supongamos que tenemos una tabla de pedidos que contiene información como se muestra en las consultas a continuación:

órdenes creables
(
Idnumbernotnull,
Cliente Varchar2 (50) NotNull,
order_datedate,
product_idnumber,
número de cantidad,
número de precio,
Restraintorder_pk Clave primaria (ID)
);
Inserte en pedidos (ID, Cliente, Order_Date, Product_ID, Cantidad, Precio)
Valores (1, 'Beatriz', fecha '2022-10-10', 4500, 45, 56);
Inserte en pedidos (ID, Cliente, Order_Date, Product_ID, Cantidad, Precio)
Valores (2, 'Ali', fecha '2022-10-10', 5400, 65, 109);
Inserte en pedidos (ID, Cliente, Order_Date, Product_ID, Cantidad, Precio)
Valores (3, 'gabriel', fecha '2022-10-11', 6400, 405, 586);
Inserte en pedidos (ID, Cliente, Order_Date, Product_ID, Cantidad, Precio)
Valores (4, 'Beatriz', fecha '2022-10-11', 5800, 55, 550);
Inserte en pedidos (ID, Cliente, Order_Date, Product_ID, Cantidad, Precio)
Valores (5, 'Beatriz', fecha '2022-10-12', 4506, 46, 700);
Inserte en pedidos (ID, Cliente, Order_Date, Product_ID, Cantidad, Precio)
Valores (6, 'gabriel', fecha '2022-10-11', 9001, 450, 5600);

Tabla de salida:

Ejemplo

El siguiente ejemplo utiliza la cláusula PIVOT para la información del cliente y el producto comprado.

SELECCIONAR DE
(
Seleccione Cliente, Product_id de pedidos
)
pivote
(
Count (Product_ID)
Para productos_id en (4500, 6400, 5800, 4506, 9001)
)
Pedido por cliente;

Una tabla resultante es como se muestra:

Ejemplo 2 - columnas giratizadas de alias

Ejemplo de columnas de alias:

SELECCIONAR DE
(
Seleccione Cliente, Product_id de pedidos
)
pivote
(
Count (Product_ID)
Para Product_ID en ('Camisetas' 4500, 'Case más cooler' 6400, 'Audio Mic' 5800, 'Android Telephone' 4506, 'Curved Monitor' 9001)
)
Pedido por cliente;

Conclusión

Este artículo cubre los conceptos básicos de trabajar con el comando PIVOT en las bases de datos Oracle.