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)
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.