Cómo Comparar Dos Filas en la Misma Tabla en Oracle

Resumen: en este tutorial, aprenderá a comparar dos filas en la misma tabla en Oracle.

Suponiendo que tenga una tabla product_prices que almacena el historial de precios de todos los productos. La siguiente instrucción crea la tabla product_prices :

Code language: SQL (Structured Query Language) (sql)

La tabla product_prices tiene las siguientes columnas:

  • id es una columna de identidad cuyos valores se generan automáticamente. id es la clave principal de la tabla.
  • product_id almacena el ID de producto que identifica un producto.
  • valid_from almacena la fecha de vigencia a partir de la cual el precio de lista es válido.
  • list_price almacena el precio de lista de un producto.

Las siguientes instrucciones INSERT insertan algunas filas en la tabla product_prices :

Code language: SQL (Structured Query Language) (sql)

Como puede ver, el precio del id del producto cambia. Para encontrar las diferencias entre cada cambio posterior, debe comparar dos filas sucesivas.

Asumimos que no hay espacio en la columna id y el precio de lista con la fecha de inicio válida anterior se inserta antes del precio de lista con la fecha de inicio válida posterior, la siguiente consulta compara los precios entre cada cambio del id del producto100:

Code language: SQL (Structured Query Language) (sql)
Cómo comparar Dos filas en la Misma tabla en Oracle

En esta consulta, utilizamos la combinación automática que une la tabla product_prices a sí misma. El predicado de unión siguiente permite la fila actual con la fila anterior.

Code language: SQL (Structured Query Language) (sql)

Ahora, debería saber cómo comparar dos filas en la misma tabla en Oracle.

Write a Comment

Tu dirección de correo electrónico no será publicada.