Oracle Ders 26 – Group Functions – 01
Merhaba Arkadaslar,
Onumuzdeki bir kac yazi boyunca Group Function konusundan bahsedecegim. Bu yazimda su fonksiyonlari ele alacagim;
- SUM
- AVG
- COUNT
- MAX
- MIN
SUM, AVG, COUNT, MAX , MIN fonksiyonlari aggregate(birlestirmek) functions olarak da bilinir.
Group Function , bir diger ifadesiyle Multiple-Row Function olarak adlandirilir. Her satir (row) grubu icin bir sonuc doner.
Oncelikle yeni bir tablo olusturalim ve 5 tane kayit ekleyelim.
create table group1 ( id number, price number ); insert into group1 values (1,100) ; insert into group1 values (2,200) ; insert into group1 values (3,300) ; insert into group1 values (4,400) ; insert into group1 values (5,500) ; insert into group1 values (6,500) ; insert into group1 values (7,1000) ;
SUM
SUM fonksiyonu, ilgili numerik alanin toplam degerini verir.
Genel formati su sekildedir ; SUM ( [DISTINCT|ALL] n)
select sum(price) from group1; //3000 select sum(distinct(price)) from group1; //2500 select sum(All(price)) from group1; //3000
Sorgularin sonuclarini inceleyecek olursak , price degerlerini birbiriyle topladik ve sonucu getirdik. Burada DISTINCT kullandigimizda 2500 oldu cunku 500 2 adet oldugu icin sadece birini isleme aldi.
AVG
AVG fonksiyonu , ilgili numerik alanin ortalama degerini hesaplar (average).
select avg(price) from group1; //428.571428571428571428571428571428571429 insert into group1 values (8,null); select avg(price) from group1; //428.571428571428571428571428571428571429
Dikkat ederseniz price alani NULL olan bir kayit daha ekledik bu durum ortalamayi degistirmedi. NULL degerler ortalamaya katilmaz.
select avg(nvl(price,0)) from group1; //375
Isin isine NVL fonksiyonu da sokarsak sonuc degisecektir. NVL fonksiyonu , null alani 0 olarak isleme katacak bu durumda AVG fonksiyonu da isleme katacaktir.
COUNT
COUNT fonksiyonu kayit sayisini saymak icin kullanilabilir. AVG fonksiyonun da oldugu gibi NULL alanlari goz ardi edecektir.
COUNT ( * [DISTINCT |ALL] c)
select count(price) from group1; 7 select count(distinct(price)) from group1; //6 select count(*) from group1; // 8
1.sorguda price alani null olan 1 kayit oldugu icin bu satiri goz ardi etti ve 7 sonucunu getirdi.
2.sorguda distinct kullandigimiz icin birbirinden farkli olanlari getirdi. (2 tane 500 vardi)
3.sorguda * operatorunu kullanarak null olmayan diger alanlara gore sonucu hesapladik.
MAX
MAX fonksiyonu ilgili numerik alan icin en buyuk degeri dondurur.
MAX ( [DISTINCT|ALL ] c )
select max(price) from group1; //1000
MIN
MIN fonksiyonu ilgili numerik alan icin en kucuk degeri dondurur.
MIN( [DISTINCT|ALL ] c )
select min(price) from group1; //100
select max(price), min (price),avg(price),sum (price) , count(*) from group1;
Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
injavawetrust
Leave a Reply