Sammendrag: i denne opplæringen lærer du hvordan du sammenligner to rader i samme tabell i Oracle.
Forutsatt at du har en product_prices
tabell som lagrer prishistorikk for alle produkter. Følgende setning oppretter tabellen product_prices
:
Code language: SQL (Structured Query Language) (sql)
tabellen product_prices
har følgende kolonner:
-
id
er en identitetskolonne hvis verdier genereres automatisk.id
er primærnøkkelen i tabellen. -
product_id
lagrer produkt-iden som identifiserer et produkt. -
valid_from
lagrer den effektive datoen som listeprisen er gyldig fra. -
list_price
lagrer listeprisen for et produkt.
følgende INSERT
setninger sett inn noen rader i tabellen product_prices
:
Code language: SQL (Structured Query Language) (sql)
som du kan se, endres prisen på produkt-id. For å finne forskjellene mellom hver påfølgende endringer, må du sammenligne to påfølgende rader.
vi antar at det ikke er noe gap i kolonnen id
og listeprisen med tidligere gyldig fra dato er satt inn før listeprisen med senere gyldig fra dato.100
:
Code language: SQL (Structured Query Language) (sql)
i denne spørringen brukte vi self-join som knytter seg til product_prices
– tabellen til seg selv. Følgende sammenføyningspredikat tillater gjeldende rad med forrige rad.
Code language: SQL (Structured Query Language) (sql)
nå bør du vite hvordan du sammenligner to rader i samme tabell I Oracle.