sugibiask


 

ANA SAYFA - DERSLER - SCRiPTLER - FORUM - İNDİRİM KUPONU - EN COK iNDiRiLENLER - İLETİŞİM - REKLAM

 

   ÜYE GİRİŞİ
  Kullanıcı Adı :
  Şifre :

  Beni Hatırla:
     

   EN SON 3 YENİLİK

   CAPRAZ .NET 'TE ARA





 


Dersin Adı : Gruplandırarak İşlem Yapma
Okunma : 571 Kategori :   SQL  
Eklenme Tarihi : 10/10/2004


.: DETAY :.


          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;