Oracle Ders 32 – SubQueries – 03 Multiple Column SubQuery

Merhaba Arkadaslar,
Bir kac derstir Oracle da Subquery (altsorgu) konusunu isledik. Once Single Row sonrasinda Multiple Row Subquery konusunu inceledik. Bu yazimda  Multiple Column Subquery yapisindan bahsedecegim.

Multiple Column Subquery ,alt sorgu sonucu birden fazla alan/deger /kolon (column) donmesine izin verir.

Multiple (coklu) Column Subquery yapisi from,where veya having cumlecikleri ile kullanilabilir.

From Cumlecigi ile Multiple Column SubQuery
Sorgularimizi adim adim olusturalim, oncelikle Book tablomuzda yer alan kayitlar icin kategorisine gore gruplama islemi yapan ve her kategori icin ortalama fiyati donduren sorgumuz.

select category , avg(retail) cataverage
                  from books group by category;

oracle ders 32 subquery1

Bu sorgumuzu subquery(alt sorgu) ifadesi olarak kullanabiliriz. Burada dikkat ederseniz joinleme islemi gerceklestirdik. Altsorgumuz sonucu donen yapi gecici bir tablo olusturur, buna inline view denir. Boylece iki tablo arasinda join islemini gerceklestirebiliriz.

select title, retail, category, cataverage
from books join (select category , avg(retail) cataverage
                  from books group by category)
using (category)
where retail>cataverage;

oracle ders 32 multiple column

Her kitap icin , icinde bulundugu kategori (category) fiyat ortalamasindan  (cataverage) buyuk (retail>cataverage) sartini saglayan kitaplara ait bilgiler getirilmektedir.

Where Cumlecigi ile Multiple Column Subquery
Multiple Column Subquery yapisini where ve having ile de kullanabiliriz. Bunun icin IN operatorunden yararlaniriz.

Su sorgumuz kategoriye gore gruplamakta ve en buyuk fiyatli kitap bilgisini ve ilgili kategori bilgisini getirmektedir.

select category, max(retail) from books
group by category;

oracle ders 32 subquery 2

select title, retail,cost, category
from books
where (category,retail) in  (select category, max(retail)
                             from books
                             group by category)
order by category;

Bu sorgumuzda category ve max(retail) degerlerini dondurduk , Books tablomuzda yer alan kayitlar icin category ve retail degerlerinin donen degerlere esit olup olmadigini kontrol ediyoruz ve sonuclari donduruyoruz.

oracle ders 32 subquery 3

Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
injavawetrust

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *