Grup fonksiyonları tek kayıt fonksiyonların
aksine her bir kayıt için değil her bir grup için bir kez çalıştırılır.Grup fonksiyonları tek kayıt fonksiyonlarından farklı olarak bir veye daha fazla girdi değeri
alır .Null değeri dikkate almaz ve genelde null dönürmezler. Şimdi de bir kaç tane
grup fonksiyonunu anlatmaya çalışalım;
- Distinct; Aynı değere sahip kayıtların sadece bir kez değerlendirmeye alır;
- Avg; Aritmatik ortalamayı verir.
- Count; Null olmayan değerlerin sayısını verir.
- Grouping; Özetlenmiş kayıtlar için 1, özetlenmemiş kayıtlar için 0 değeri döndürüler.
- Group_id; Her bir grubu belirtilen bir belirteç değeri döndürür.
- Max; En büyük değeri döndürür.
- Min; En küçük değeri döndürür.
- Sum; Aritmatik toplamı verir.
Şimdi ise bu grup
fonksiyonlarından bazılarına örnekler verelim;
Avg; Aritmatik ortalamayı verir.
- SQL>select avg(ucret) from employees;
- SQL> select bolum_id, avg(ucret) from personeller group by bolum_id order by avg(ucret);
Count; Null olmayan değerlerin
sayısını verir.
- SQL> select count (distinct bolum_id) from personeller;
Max; En büyük değeri döndürür.
- SQL>select max (ucret) from personeller;
Min; En küçük değeri döndürür.
- SQL> select min(ucret) from personeller;
Sum; Aritmatik toplamı verir.
- SQL> select sum (*) from employees;
GROUP BY İLE VERİLERİN GRUPLANDIRILMASI;
Gruplanmiş veriler üzerinde işlem
yapar. SQL cümlelerinde veriler gruplanmasını istediğimiz group by ifadesi ile belirtiriz.
- Sql cümlesinin select kısmında kullanılan gruplama ifadeleri ve sabit değerler haricindeki tüm sütunlar group by ifadesi yer almalıdır.
- Eğer group by ifadesi kullanılmazsa select kısmında sadece grup fonksiyonları ve sabit değerler kullanılır.
- Sql cümlesi caliştığında önce veriler çekilir, daha sonra group by ifadesi ile gruplandırılır.
- SQL> select ise_giris_tarih, count (*) from personeller group by ise_giris_tarih;
HAVING İLE
GRUPLANMIŞ VERİLERİN SINIRLANDIRILMASI;
Gruplamada where kullanılmaz onun
yerine having kelimesinden yaralanılır ve şartlar havingden sonra yazılır.
- SQL> select bolum_id , count(*) from personeller group by bolum_id having count (*)<3;
CUBE VE
ROLLUP İLE GRUPLANMIŞ VERİLERİN
GRUPLANMASI;
Cube ve rollup grup by kısmında
kullanılır.
ROLLUP;
Gruplaması yapıldığı zaman sorgu
sonucundaki çıktı normal gruplama sonucunda dönen kayıtlar ile birlikte bu
kayıtların gruplama ifadesine göre ara toplamları olur. Sütunların sıralaması önemlidir.
- SQL> select bolum_id, gorev_id, sum (ucret) from personeller grup by rollup (bolum_id,gorev_id);
CUBE;
Gruplaması yapıldığı zaman sorgu
sonucundaki çıktı normal gruplama sonucu dönen kayıtlar ile birlikte sadece
sütunların sıralaması göre oluşan hiyerarsik ara toplamlar değil,bu kayıtların
gruplama ifadesine göre olabilecek tüm kombinasyonların ara toplamları üretilir.Bu nedenle cube operatörü kullanıldığı zaman sıralamanın pek bir önemi
yoktur.
Hiç yorum yok:
Yorum Gönder