rezumat: în acest tutorial, veți învăța cum să comparați două rânduri în același tabel în Oracle.
presupunând că aveți un tabel product_prices
care stochează istoricul prețurilor tuturor produselor. Următoarea instrucțiune creează tabelul product_prices
:
Code language: SQL (Structured Query Language) (sql)
tabelul product_prices
are următoarele coloane:
-
id
este o coloană de identitate ale cărei valori sunt generate automat.id
este cheia primară a tabelului. -
product_id
stochează ID-ul produsului care identifică un produs. -
valid_from
stochează data efectivă de la care este valabil prețul de listă. -
list_price
stochează prețul de listă al unui produs.
următoarele instrucțiuni INSERT
introduceți câteva rânduri în tabelul product_prices
:
Code language: SQL (Structured Query Language) (sql)
după cum puteți vedea, prețul id-ului produsului se schimbă. Pentru a găsi diferențele dintre fiecare modificare ulterioară, trebuie să comparați două rânduri succesive.
presupunem că nu există niciun decalaj în coloana id
și că prețul de listă cu data anterioară valabilă de la dată este introdus înainte de prețul de listă cu data ulterioară valabilă de la dată, următoarea interogare compară prețurile între fiecare modificare a id-ului produsului100
:
Code language: SQL (Structured Query Language) (sql)
în această interogare, am folosit auto-asocierea care se alătură tabelului product_prices
la sine. Următorul predicat join permite rândul curent cu rândul anterior.
Code language: SQL (Structured Query Language) (sql)
acum, ar trebui să știți cum să comparați două rânduri din același tabel în Oracle.