2. GRUP FONKSIYONLARI
Tek satır fonksiyonları, tablonun bir satırına
uygulanabiliyordu. Bir grup satıra bir fonksiyonun
uygulanması söz konusu ise çoklu satır fonksiyonları
ya da diğer bir deyişle grup fonksiyonlarından söz
edilir.
Fonksiyonlar
Tek satır
fonksiyonları
Çoklu satır
fonksiyonları
3. AVG() VE SUM() FONKSIYONLARI
AVG() fonksiyonu herhangi bir sütunun içerdiği
sayısal değerlerin aritmetik ortalamasını hesaplamak
amacıyla kullanılır.
SELECT AVG(ÜCRET) AS ORTALAMA FROM PERSONEL;
SUM() fonksiyonu sütunların içerdiği sayısal değerleri
toplamak amacıyla kullanılır.
SELECT SUM(ÜCRET) AS TOPLAM FROM PERSONEL;
4. STDEV () VE VARP() FONKSIYONLARI
STDEV() fonksiyonu sayısal verilerin standart
sapmasının hesaplanmasında kullanılan
fonksiyondur. ORACLE karşılığı STDDEV()’dir.
SELECT STDEV(ÜCRET) AS “STANDART SAPMA” FROM
PERSONEL;
VARP() fonksiyonu bir dizi sayısal değerin standart
sapmasını hesaplamak için kullanılır. ORACLE
karşılığı VARIANCE()’dir.
SELECT VARP(ÜCRET) AS VARYANS FROM PERSONEL;
5. MAX() VE MIN() FONKSIYONLARI
Tablonun içerdiği değerlerin içerdiği en büyük ve en
küçük olanlarını bulmak için MAX() ve MIN()
fonksiyonları kullanılır. Bu fonksiyonlar herhangi bir veri
türüne uygulanabilir.
SELECT MIN(ÜCRET) AS “EN AZ”, MAX(ÜCRET) AS “EN FAZLA”
FROM PERSONEL;
SELECT MAX(GİRİŞ_TAR) AS “EN SON” FROM PERSONEL;
SELECT MIN(ADI) AS “İLK İSİM” FROM PERSONEL;
6. COUNT() FONKSIYONU
Bir tablodaki kayıtların tutulması amacıyla kullanılır.
İki farklı biçimde kullanılabilir:
COUNT(*) fonksiyonu, NULL değerleri de içeren tüm
kayıtların sayılmasına neden olur.
SELECT COUNT(*) AS “KAYIT SAYISI” FROM PERSONEL
WHERE BÖLÜM_NO=‘30’;
COUNT(sütun) biçiminde kullanılırsa NULL değerler
içermeyen tüm kayıtların sayılmasına neden olur.
SELECT COUNT(KOMİSYON) AS “KOMİSYON ALAN” FROM
PERSONEL;
7. GRUPLAMA İŞLEMLERİ
Bir tablonun satırları gruplara ayrılarak, grup
fonksiyonlarının bunlara uygulanması sağlanabilir.
GROUP BY sözcüğünden faydalanılır.
Örnek: Personel tablosuna göre, her bölüm için
personel sayısını, ücret toplamını ve ortalama
ücretleri hesaplamak için:
SELECT BÖLÜM_NO, COUNT(ADI) AS SAYI, SUM(ÜCRET)
AS TOPLAM, AVG(ÜCRET) AS ORTALAMA FROM PERSONEL
GROUP BY BÖLÜM_NO;
8. BIRDEN FAZLA SÜTUNA GÖRE GRUPLAMA
GROUP BY ile bir sütuna göre gruplama yapılabildiği
gibi, birden fazla sütun için de gruplama yapılabilir.
Örnek: Her bölümü ve bölüm içindeki görevlere göre
personeli gruplayarak bu bazda ücret toplamları elde
etmek için:
SELECT BÖLÜM_NO, GÖREVİ, SUM(ÜCRET) FROM
PERSONEL GROUP BY BÖLÜM_NO, GÖREVİ;
9. GRUP KOŞULLARININ KULLANIMI
Grup işlemleri yerine getirilirken, grup bazında
sınırlamalar söz konusu olabilir. Örneğin, bölüm
bazında bir işlemin, bölüm ücret ortalamasının
2000’den büyük ise gerçekleşmesi istenebilir.
Hatalı
SELECT BÖLÜM_NO, AVG(ÜCRET) FROM PERSONEL
WHERE AVG(ÜCRET)>2000 GROUP BY BÖLÜM_NO;
Doğru
SELECT BÖLÜM_NO, AVG(ÜCRET) FROM PERSONEL
GROUP BY BÖLÜM_NO HAVING AVG(ÜCRET)>2000;
Grup koşulları WHERE içinde tanımlanamaz. Onun
yerine HAVING sözcüğü kullanılır.
10. GRUP KOŞULLARININ KULLANIMI
Örnek: Ortalama ücreti 3500’den fazla olan bölümlerin
bölüm numarası ve o bölümdeki en yüksek ücret
miktarını görüntülemek için:
SELECT BÖLÜM_NO AS “BÖLÜM NO”, MAX(ÜCRET) AS “EN
ÇOK” FROM PERSONEL GROUP BY BÖLÜM_NO HAVING
AVG(ÜCRET)>3500;
11. GRUP KOŞULLARININ KULLANIMI
Örnek: Pazarlama bölümü dışında çalışan personeli
görevlerine göre gruplandırıp ücretleri toplayan;
bölümün toplam ücretini 5000’den fazla olanlar seçen
ve sonuçları en düşük ücret toplamından büyüğe
doğru sıralamak için:
SELECT GÖREVİ, SUM(ÜCRET) AS TOPLAM FROM
PERSONEL WHERE GÖREVİ <> ‘PAZARLAMACI’ GROUP BY
GÖREVİ HAVING SUM(ÜCRET) > 5000 ORDER BY
SUM(ÜCRET);