Jak porównać dwa wiersze w tej samej tabeli w Oracle

Podsumowanie: w tym samouczku dowiesz się, jak porównać dwa wiersze w tej samej tabeli w Oracle.

zakładając, że masz product_prices tabelę, która przechowuje historię cen wszystkich produktów. Poniższe polecenie tworzy tabelę product_prices :

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

tabela product_prices zawiera następujące kolumny:

  • id jest kolumną tożsamości, której wartości są generowane automatycznie. id jest podstawowym kluczem tabeli.
  • product_id Przechowuje identyfikator produktu, który identyfikuje produkt.
  • valid_from przechowuje datę wejścia w życie, od której obowiązuje cena katalogowa.
  • list_price przechowuje cenę katalogową produktu.

poniższe polecenia INSERT wstawiają kilka wierszy do tabeli product_prices :

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

jak widać, zmienia się cena identyfikatora produktu. Aby znaleźć różnice między kolejnymi zmianami, musisz porównać dwa kolejne wiersze.

Zakładamy, że nie ma luki w kolumnie id i CENA KATALOGOWA z wcześniejszą ważną od daty jest wstawiana przed ceną katalogową z późniejszą ważną od daty, poniższe zapytanie porównuje ceny między każdą zmianą id Produktu100:

Code language: SQL (Structured Query Language) (sql)
jak porównać dwa wiersze w tej samej tabeli w Oracle

w tym zapytaniu użyliśmy funkcji self-join, która łączy tabelę product_prices ze sobą. Następujący predykat join pozwala na dodanie bieżącego wiersza do poprzedniego wiersza.

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

teraz powinieneś wiedzieć, jak porównać dwa wiersze w tej samej tabeli w Oracle.

Write a Comment

Twój adres e-mail nie zostanie opublikowany.