Oracle Ders 29 – Group Functions – 04 Enhanced Aggregation

Merhaba Arkadaslar,
Bu yazimda Group Function konusunu bitirecegim. Bu yazimda birlestirilmis/gelistirilmis kumeleme yapisini gorecegiz.

GROUPING SETS
Grouping Sets ifadesi GROUP BY yapisi ile birlikte kullanilmaktadir. Tek bir sorguda birden fazla Group By islemi yapmamizi saglar.

select name, category, count(isbn),
AVG(retail) from publisher join books using (pubid)
where pubid in (2,3,5)
GROUP BY GROUPING SETS (name, category,(name,category),());

oracle ders 28 grouping sets

Sorgu sonuclarinda 1-6 satirlar, name ve category 7-10 category ,11-13 name son olarak gruplama islemi yapmakta ve sonucu dondurmektedir.  GROUPING SETS ifadesinin sonunda bulunan parantez ” () ” ise overall total aggregation dir.
Bu islemi tek tek group by ile yapmaya kalksaydik soyle bir yapi kurmamiz gerekecekti.

select name, category, count(isbn),
AVG(retail) from publisher join books using (pubid)
where pubid in (2,3,5)
GROUP BY (name,category)
union
select null, category, count(isbn),
AVG(retail) from publisher join books using (pubid)
where pubid in (2,3,5)
GROUP BY (null,category)
union
select name, null, count(isbn),
AVG(retail) from publisher join books using (pubid)
where pubid in (2,3,5)
GROUP BY (name,null)
union
select null, null, count(isbn),
AVG(retail) from publisher join books using (pubid)
where pubid in (2,3,5);

CUBE
CUBE , ilgili kolonlar icin tum olasi durumlarina gore GROUP BY islemi yapar.

select name, category, count(isbn),
AVG(retail) from publisher join books using (pubid)
where pubid in (2,3,5)
GROUP BY CUBE (name,category);
GROUP BY CUBE (name,category);
GROUP BY GROUPING SETS (name, category,(name,category),());

Ifadeleri ayni anlama gelmektedir. Burada gruplama islemi icin ;
GROUPING SET yapisinda name ve category icin 4 durumu da yazdik. CUBE yapisinda name ve category olarak belirmemiz 4 duruma gore de gruplama islemi yapmayi saglayacaktir.

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 *