GROUP BY
GRUPLA
ÖRNEK: Her bölümdeki ortalama maaş nedir?
SELECT böl_no,AVG (brüt) SEÇ böl_no
FROM personel GELİŞ personel
GOUP BY böl_no; GRUPLA böl_no;
HAVING:
HAVING SAHİP
Gruplandırarak kümeleme fonksiyonunu uygularken koşulda verilebilir.Bu durumda grup üzerindeki hesaplamalarla ilgili koşul belirtilirken HAVING (SAHİP) sözcüğü kullanılır.
ÖRNEK:En yüksek maaşın 9000000’dan fazla olduğu bölümlerdeki personele ait ortalama maaşları listele.
SELECT böl_no,AVG (brüt) SEÇ böl_no, ORT(brüt)
FROM personel GELİŞ personel
GROUP BY böl_no GRUPLA böl_no
HAVING AVG(brüt)> 9000000; SAHİP ORT(brüt)> 9000000;
HAVING(SAHİP) sözcüğü SELECT(SEÇ) konusunda GROUP BY(GRUPLA) bulunmadığı zaman geçersizdir.HAVING(SAHİP) sözcüğünü izleyen ifade içinde ,SUM(TOPLA), COUNT(*)(SAY),AVG(ORT),MAX(ÜST) yada MIN(ALT) fonksiyonlarından en az biri bulunmalıdır.
HAVING (SAHİP) sözcüğü sadece gruplanmış veriler üzerindeki işlemlerde geçerlidir.
WHERE (OLAN) sözcüğü bir tablonun tek tek satırları üzerinde işlem yapan koşullar içinde geçerlidir.
Bazı durumlarda HAVING(SAHİP) ve WHERE(OLAN) sözcükleri ile birlikte SELECT(SEÇ) komutu içinde kullanılabilir.
ÖRNEK:Personel tablosu içinde her bölümde erkek personele ait maaşlar için ortalamanın 9000000’dan fazla olduğu bölümleri listele.
SELECT böl_no, AVG (brüt) SEÇ böl_no, ORT (brüt)
FROM personel GELİŞ personel
WHERE cins= .T. OLAN cins= .D.
GROUP BY böl_no GRUPLA böl_no
HAVING AVG (brüt) > 9000000; SAHİP ORT(brüt) > 9000000;