Sådan sammenlignes to rækker i samme tabel i Oracle

Sammendrag: i denne vejledning lærer du, hvordan du sammenligner to rækker i samme tabel i Oracle.

forudsat at du har en product_prices tabel, der gemmer prishistorik for alle produkter. Følgende sætning opretter tabellen product_prices :

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

tabellen product_prices har følgende kolonner:

  • id er en identitetskolonne, hvis værdier genereres automatisk. id er den primære nøgle i tabellen.
  • product_id gemmer det Produkt-id, der identificerer et produkt.
  • valid_from gemmer den effektive dato, hvorfra listeprisen er gyldig.
  • list_price gemmer listeprisen for et produkt.

følgende INSERT udsagn indsæt nogle rækker i product_prices tabellen:

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

som du kan se, ændres prisen på Produkt-id ‘ et. For at finde forskellene mellem hver efterfølgende ændring skal du sammenligne to på hinanden følgende rækker.

vi antager, at der ikke er noget hul i kolonnen id, og listeprisen med den tidligere gyldige fra dato indsættes før listeprisen med senere Gyldig fra dato, følgende forespørgsel sammenligner priser mellem hver ændring af Produkt-id 100:

Code language: SQL (Structured Query Language) (sql)
sådan sammenlignes to rækker i samme tabel i Oracle

i denne forespørgsel brugte vi selvforbindelsen, der forbinder product_prices tabellen til sig selv. Følgende join-prædikat tillader den aktuelle række med den forrige række.

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

nu skal du vide, hvordan du sammenligner to rækker i samme tabel i Oracle.

Write a Comment

Din e-mailadresse vil ikke blive publiceret.