Arşiv

Posts Tagged ‘sum’

pl/sql de count, min, max ve sum kullanımı


Merhaba
Bu eğitim yazımızda pl/sql de çok sık kullanılan count, min, max ve sum fonksiyonlarından bahsedeceğiz. İsimlerinden de anlaşıldığı gibi sorgumuzdaki işlemlerde count kayıt sayılarını, min aldığı parametredeki en küçük değeri, max aldığı parametredeki en büyük değeri ve sum aldığı parametrenin toplamını verir. Şimdi sırası ile her bir fonksiyonu sorgumuz ile kontrol edelim ve sonrada hepsini tek bir sorguda kullanalım. Hatırladığınız gibi ilk eğitim yazımızdan bu zamana kadar aşağıdaki sorguyu çeşitli halleri ile kullandık. Şimdide sorgu sonucumuzdan kaç kişi gelecek, en düşük maaş ne kadar, en yüksek maaş ne kadar ve tüm kayıtların toplam maaşı ne kadar onları inceleyelim.

[count]

select count(1)
  from hr.employees
 where salary < 3000
   and job_id in ('PU_CLERK', 'ST_CLERK');

Bu sorgumuz sonucunda “17” adet kişi olduğu bilgisine ulaştık.

[min]

select min(salary)
  from hr.employees
 where salary < 3000
   and job_id in ('PU_CLERK', 'ST_CLERK');

En düşük maaş tutarı ise “2100” değerinde.

[max]

select max(salary)
  from hr.employees
 where salary < 3000
   and job_id in ('PU_CLERK', 'ST_CLERK');

Sorgumuzdaki en yüksek maaş alanların maaş tutarı “2900” değerinde.

[sum]

select sum(salary)
  from hr.employees
 where salary < 3000
   and job_id in ('PU_CLERK', 'ST_CLERK');

Son olarak sorgumuzdaki kişilerin toplam maaş değeri ise “43300”.

Tüm fonksiyonları tek tek kullandığımız göre şimdi tek bir sorguda toplam kişi sayısı,minumum maaş ve maksimum maaş tutarı ile toplam maaş bilgisine ulaşalım.

select count(1),min(salary),max(salary),sum(salary)
  from hr.employees
 where salary < 3000
   and job_id in ('PU_CLERK', 'ST_CLERK');
COUNT(1) MIN(SALARY) MAX(SALARY) SUM(SALARY)
17 2100 2900 43300

Yukarıdaki tabloda da görüldüğü gibi çok rahat bir şekilde ilgilis fonksiyonu kullanıp sorgumuzda farklı sonuçlar elde ettik. Hepsinide aynı anda sorgumuzda kullanabildik.
Kolay gelsin.

Kategoriler:Database, Eğitim, Forms, Oracle, PL/SQL, Reports Etiketler:, , , , ,

pl/sql de having kullanımı


Merhaba
Bu eğitim yazımızda pl/sql de having kullanımından bahsedeceğiz. Having ile yazdığımız sqllerde gruplama işleminden sonraki kayıtlar içinde bir kriter belirleyip o duruma göre sonuçlarımızı alabiliriz. Daha önceki pl/sql de group by kullanımı yazdımızda kullandığımız sql ile işlemimize devam edelim. Having satırı genel olarak group by işlemi yaptığmız sql sorgularında kullanılır. Bu yöntemi kullanmak için öncelikle mevcut sorgumuza ve sonucuna bakalım.

select j.job_title meslek, count(1) toplam_kisi, sum(e.salary) toplam_maas
  from hr.employees e, hr.jobs j
 where e.salary < 3000
   and e.job_id in ('PU_CLERK', 'ST_CLERK')
   and j.job_id = e.job_id
 group by j.job_title;

Yukarıdaki sorgumuzun sonucu ise aşağıdaki gibi olacaktır.

MESLEK TOPLAM_KISI TOPLAM_MAAS
Purchasing Clerk 4 10800
Stock Clerk 13 32500

Sıra geldi having ile var olan sonucumuzu değiştirmeye. Yukarıdaki sorgunun sonucunda bize sadece toplam maaşı 30000 den küçük olan ya da kişi sayısı 5 ten büyük olan kayıtların gelmesi için having satırını kullanırız. İlk önce toplam maaşı 30000 den küçük olan kayıtların gelmesi için sorgumuzu aşağıdaki gibi güncelleyelim.

select j.job_title meslek, count(1) toplam_kisi, sum(e.salary) toplam_maas
  from hr.employees e, hr.jobs j
 where e.salary < 3000
   and e.job_id in ('PU_CLERK', 'ST_CLERK')
   and j.job_id = e.job_id
 group by j.job_title
having sum(e.salary) < 30000;

Sorgumuzun güncellendiğinde göre sonucumuz da aşağıdaki gibi olacaktır.

MESLEK TOPLAM_KISI TOPLAM_MAAS
Purchasing Clerk 4 10800

Gördüğünüz gibi istenildiği şekilde sorgularımızda düzenleme yapmamız mümkün. Sizde kendi sorgularınızda istediğiniz düzenlemeyi yapabilirsiniz.

Kolay gelsin.

pl/sql de group by kullanımı


Merhaba
Bu eğitim yazımızda pl/sql de group by kullanımından bahsedeceğiz. Group by işlemi hazırladığımız sqllerde istediğmiz içeriğe ya da koşula göre kayıtları gruplamamızı sağlar. Bu işlem için daha önce pl/sql de select ve where kullanımı ve pl/sql de join yapısı ve kullanımı eğitim yazılarında kullandığımız sql üzerinden işlemimize devam edeceğiz. Son olarak kullandığımız sql içinde join yapısı kullanmış ve sqli aşağıdaki hale getirmiştik.

select e.first_name adi, e.last_name soyadi, e.salary maas,
       j.job_title meslek
  from hr.employees e, hr.jobs j
 where e.salary < 3000
   and e.job_id in ('PU_CLERK', 'ST_CLERK')
   and j.job_id = e.job_id;

Artık bu sql ile gelen kayıtları mesleklerine göre gruplayıp ve bu mesleklerde kaç kişi var ve bu kişilerin toplam maaşları ne kadar onlara bakalım. Bu sqli hazırlamak için mevcut sqlimizn sonuna group by ifadesini ekleyeceğiz ve hangi alanlara göre gruplama yapmak istiyorsak o alan(lar)ı ekleyeceğiz. Sql içide ilave olarak sum ve count fonksiyonlarınıda kullanacağız fakat bu fonksiyonları ayrıca size anlatacağım.

select j.job_title meslek, count(1) toplam_kisi, sum(e.salary) toplam_maas
  from hr.employees e, hr.jobs j
 where e.salary < 3000
   and e.job_id in ('PU_CLERK', 'ST_CLERK')
   and j.job_id = e.job_id
 group by j.job_title;

Yukarıda sql çalıştığında ise bize aşağıdaki gibi sonuç verecektir. Sonuçlarda da görüldüğü gibi ilk sorumuzdaki sonuçları mesleklerine göre gruplamış olduk.

MESLEK TOPLAM_KISI TOPLAM_MAAS
Purchasing Clerk 4 10800
Stock Clerk 13 32500

Kolay gelsin.