SQL cumlelerinde verilerin nasil gruplandirilmasini istedigimizi GROUP BY ifadesi ile belirtiriz. Bunula ilgili olarak asagidakilere dikkat etmemiz gerekmektedir.
- SQL cumlesinin SELECT kisminda kullanilan gruplama ifadeleri ve sabit degerler haricindeki tum sutunlar GROUP BY ifadesinde yer almalidir.
- Eger GROUP BY ifadesi kullanilmaz ise SELECT kisminda sadece grup fonksiyonlari ve sabit degerler kullanilabilir. Gruplama tum kayitlar uzerinden yapilir.
- SQL cumlesi calistirildiginda once veriler cekilir, daha sonra GROUP BY ifadesine gore gruplandirilir.
- GROUP BY ifadesi kullanildigi zaman Oracle otomatik olarak kayitlari artan (ASC) sekilde siralar.
- Sutun takma adlari GROUP BY ifadesinde kullanilmaz.
- GROUP BY ifadesinde birden fazla sutun yada ifade kullanilabilir. Bu durumda tum kayitlar veritabaninda cekildikden sonra ilk once GROUP BY ifadesinde yeralan ilk sutun/ifadeye gore siralama yapilir. Daha sonra sirasiyla digerlerine gore gruplama yapilir.Sonuc olarak grup icinde grup olmus olur.
Asagidaki ornekde EMPLOYEES tablosundaki kayitlar HIRE_DATE (ise giris tarihl)`lerine gore gruplanarak ayni tarihte ise girmis kac kisi oldugu bulunmustur. Birinci SQL cumlesinde GROUP BY ifadesi kullanilmadigi halde HIRE_DATE SQL cumlesinin SELECT kisminda kullanildigi icin hata vermistir. Ama ikini SQL`de bu hata giderilerek GROUP BY ifadesi ilave edilmis ve SQL calistirilmitir.
SELECT hire_date, count(*) FROM employees
SQL Error: ORA-00937: not a single-group group function
GROUP BY hire_date
HIRE_DATE COUNT(*)
------------------------- ----------------------
07-12-02 2
10-08-07 1
08-03-08 5
17-10-03 1
15-10-07 1
29-01-08 3
30-01-05 1
23-11-07 1
04-03-04 1
21-04-08 2
Hiç yorum yok:
Yorum Gönder