Come confrontare due righe nella stessa tabella in Oracle

Riepilogo: in questo tutorial, imparerai come confrontare due righe nella stessa tabella in Oracle.

Supponendo di avere una tabella product_prices che memorizza la cronologia dei prezzi di tutti i prodotti. La seguente istruzione crea la tabella product_prices :

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

La tabella product_prices ha le seguenti colonne:

  • id è una colonna di identità i cui valori vengono generati automaticamente. id è la chiave primaria della tabella.
  • product_id memorizza l’ID prodotto che identifica un prodotto.
  • valid_from memorizza la data effettiva dalla quale il prezzo di listino è valido.
  • list_price memorizza il prezzo di listino di un prodotto.

Le seguenti istruzioni INSERT inseriscono alcune righe nella tabella product_prices :

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

Come puoi vedere, il prezzo dell’ID prodotto cambia. Per trovare le differenze tra ogni modifica successiva, è necessario confrontare due righe successive.

supponiamo che non vi è alcuna lacuna nel id colonna e il prezzo di listino con la prima valida dalla data viene inserita prima che il prezzo di listino più tardi con validità dalla data, la seguente query confronta i prezzi fra l’id del prodotto,100:

Code language: SQL (Structured Query Language) (sql)
Come Confrontare Due file nella Stessa Tabella in Oracle

In questa query, abbiamo usato il self-join che unisce il product_prices tabella a se stesso. Il predicato join seguente consente la riga corrente con la riga precedente.

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

Ora, dovresti sapere come confrontare due righe nella stessa tabella in Oracle.

Write a Comment

Il tuo indirizzo email non sarà pubblicato.