SQL COUNT fonksiyonu aggregate fonksiyon grubunda bulunan ve bir sorgudaki etkilenen satırların sayısını döndüren bir fonksiyondur. COUNT fonksiyonunu SELECT ifadesi ile birlikte kullanarak bir şarttaki kayıtları yada bir kritere uygun olan kayıtları getirmek için de kullanabilirsiniz.
Veritabanı: Aksi belirtilmediği sürece aşağıdaki sorgularda kütüphane veritabanını kullanacağız. Kütüphane veritabanının bir kopyasını ücretsiz olarak indirmek için buradaki bağlantıyı kullanabilirsiniz. MSSQL Server Kütüphane Veritabanını İNDİR
Aşağıdaki gösterim SQL COUNT fonksiyonunun basit bir söz dizimini ifade eder.
1 2 3 | COUNT([ALL | DISTINCT] ifade); |
Basit bir sorgu içinde şu şekilde kullanabilirsiniz:
1 2 3 4 | SELECT COUNT(*) FROM TABLOADI; |
COUNT işlevinin sonucu, ona ilettiğiniz bağımsız değişkene bağlıdır.
- Varsayılan olarak, COUNT işlevi, siz belirtseniz de belirtmeseniz de ALL anahtar sözcüğünü kullanır. ALL anahtar sözcüğü, gruptaki tüm öğelerin yinelenen değerler dahil olarak kabul edildiği anlamına gelir. Örneğin, bir grubunuz (1, 2, 3, 3, 4, 4) varsa ve SAYI işlevini uygularsanız sonuç 6’dır.
- DISTINCT anahtar sözcüğünü açıkça belirtirseniz, yalnızca benzersiz boş olmayan değerler dikkate alınır. SAYI işlevi, (1,2,3,3,4,4) grubuna uygularsanız 4 döndürür.
Bağımsız değişken olarak bir yıldız (*) kabul eden COUNT işlevinin başka bir biçimi aşağıdaki gibidir:
1 2 3 | COUNT(*) |
NOT: COUNT(*) işlevi, NULL değerleri içeren satırları içeren bir tablodaki satır sayısını da döndürür.
SQL COUNT Fonksiyonu Örnekleri
COUNT işlevinin nasıl çalıştığını görmek için bazı örnekler alalım. Gösteri amacıyla örnek veritabanındaki öğrenciler tablosunu kullanacağız.
SQL COUNT(*) Örnekleri
Örnek: Öğrenciler tablosundaki satır sayısını almak için COUNT(*) fonksiyonu aşağıdaki gibi kullanırsınız.
1 2 3 | SELECT COUNT(*) FROM ogrenci |
Çıktı:

Örnek : 10A sınıfındaki öğrencilerin sayısını getirin.
1 2 3 4 5 | SELECT COUNT(*) FROM ogrenci WHERE sinif = '10A' |
Çıktı:

SQL COUNT GROUP BY Kullanım Örnekleri
Örnek: Sınıf başına düşen öğrencilerin sayısını bulmak için COUNT işlevini GROUP BY ifdesi ile kullanabiliriz.
1 2 3 4 5 | SELECT sinif, COUNT(*) FROM ogrenci GROUP BY sinif |
Çıktı:

Örnek: Bu seferde her sınıftaki KIZ öğrencilerin sayısını bulmak için COUNT, GROUP BY ve WHERE ifadelerini bir arada kullanalım.
1 2 3 4 5 6 | SELECT sinif, COUNT(*) FROM ogrenci WHERE cinsiyet = 'K' GROUP BY sinif |

Örnek: İstersek COUNT ifadesine bir alias tanımlayabiliriz. Aşağıdaki örnekte siniftaki_ogrenci_sayilari takma adı kullanılmıştır.
1 2 3 4 5 | SELECT sinif, COUNT(*) as 'siniftaki_ogrenci_sayilari' FROM ogrenci GROUP BY sinif |

Örnek: Hangi öğrencinin kaç kitap okuduğunu öğrenmek için JOIN ifadesi ile birlikte COUNT işlevini kullanabiliriz.

HAVING ifadesi ile SQL COUNT Örnekleri
Grupları COUNT() işlevinin sonucuna göre filtrelemek için HAVING yan tümcesindeki COUNT() işlevini kullanmamız gerekir.
Örnek: Aşağıdaki ifade her sınıftaki öğrenci sayıları 15 ve üzerinde olan sınıfları listeler.
1 2 3 4 5 6 | SELECT sinif, COUNT(*) as 'siniftaki_ogrenci_sayilari' FROM ogrenci GROUP BY sinif HAVING COUNT(*) >=15 |
Örnek: Başka bir örnekte 10 ve üzeri kitap okuyan öğrencilerin sayısı getirilir.
1 2 3 4 5 6 7 | SELECT ogrenci.ograd, ogrenci.ogrsoyad, COUNT(ogrenci.ogrno) as 'okunan_kitap_sayisi' FROM ogrenci INNER JOIN islem ON ogrenci.ogrno = islem.ogrno GROUP BY ogrenci.ograd, ogrenci.ogrsoyad, ogrenci.ogrno HAVING COUNT(ogrenci.ogrno) >= 10 |
SQL COUNT(DISTINCT ifadesi) Kullanım Örnekleri
Tekrar eden kayıtları almadan sorgulama yapmak için DISTINCT ifadesi ile birlikte COUNT ifadesini kullanabilirsiniz.
Örnek: Aşağıdaki sorguda ismi bir birinden farklı olan toplam kaç öğrenci olduğunu gösterir.
1 2 3 4 5 6 7 8 9 10 | --dönen kayıt sayısı 39 SELECT COUNT(DISTINCT ograd) FROM ogrenci --Dönen kayıt sayısı 100 SELECT COUNT(ograd) FROM ogrenci |
1 Yorum