Tags

, , , , , ,

Merhaba Arkadaşlar, Bu yazımızda grup fonksiyonlarından bahsedeceğiz.Bu fonksiyonlar Avg(ortalama),Count(sayma),Max(maximum),Min(minimum), Sum(toplam). Oracle veritabanında bu fonksiyonlar sayesinde bazı işlemleri çok daha rahat yapacağız. Mesela maaşların tutulu olduğu bir kolona gidip en yüksek maaşı alan çalışanı max fonksiyonu ile görüntüleyebiliriz. Yada şirketimizde çalışanların aldığı ortalama maaşı avg fonksiyonu ile görebiliriz. Bu gibi işlemleri tek bir ifade kullanarak yapacağız.Grup fonksiyonları  tek satır fonksiyonlarından farklı olarak bir den çok satır alıp bir tane sonuç dönderen fonksiyonlardır. Grup fonksiyonlarını tek satır fonksiyonlarında olduğu gibi where  ile birlikte kullanamayız,Having ile birlikte kullanılır. Grup fonksiyonları null değerleri göz ardı eder ve null değer döndürmezler.

Hemen bir örnek yapalım çalışanlar(employees) tablomuzdaki maaşlar(salary) kolonuna gidelim ve Max fonksiyonu ile en yüksek maaşı,Min fonksiyonu ile en düşük maaşı,Avg fonksiyonu ile maaşların ortalamasını(burada ondalık değer görmemek için Round fonksiyonu ile iç içe kullanacağız),Sum fonksiyonu ile verilen tüm maaşların toplamını ekrana monitör edeceğiz.

select min(salary),max(salary),round(avg(salary)),sum(salary) from   employees;
Group Functions

Group Functions

Yukarıdaki örneğimizde number değerleri işleme soktuk şimdiki örneğimizde’ de employees tablomuzdaki hire_date(işe başlangıç tarihi) date data tipini ve last_name (soy adı) varchar2 data tipini, max ve min fonksiyonlarıyla işleme sokalım.

select max(hire_date),min(last_name) from employees;
Group Functions2

Group Functions2

Yukarıdaki örneğimizde max(hire_date) diyerek en yakın tarihi,en son işe giren çalışanımızı,min(last_name) diyerek soy adı en kısa olan çalışanımızı monitör ettik.Şimdide count fonksiyonu ile employees tablomuzdaki satır sayısını bulalım.

select count(*) from employees;
Count(*)

Count(*)

select count(employee_id) from employees;
Count 2

Count 2

Görüldüğü gibi iki sorguda’da satır sayısı  aynı monitör edilmiş. Yukarda demiştikki hiç bir grup fonksiyonu null değerleri döndürmez. Şimdi Commission_pct kolonuyla alakalı bir örnek yapalım. Bildiğiniz gibi bazı çalışanlar komisyon almıyor ama Comission_pct  kolonundada 107 satır var bakalım null alanları sayacakmı ?

select count(commission_pct) from employees;
Count 3

Count 3

Yukarıdaki örnekte görüldüğü gibi null değerler sayılmadı. Çalışanlarımızdan 35 tanesi komisyon alarak çalışıyormuş.Peki biz null değerleride görmek bilmek istiyorum yani satır sayımızıda merak ediyoruz. Ozamanda NVL fonksiyonunu kullanacağız.

select count(nvl(commission_pct,0)) from employees;
Count(nvl)

Count(nvl)

Arkadaşlar bu yazımızda Group fonksiyonlarından(Avg,Count,Max,Min,Sum) bahsettik bir dahaki yazımızda Group by kullanımından bahsedeceğiz.

Advertisements