top of page
  • Yazarın fotoÄŸrafıTuncay Tiryaki

Count(Column) Kullanımı

Güncelleme tarihi: 19 May 2020

Count fonksiyonunun yanlış bilinen kullanımları



Count fonksiyonu, bilinen en basit tanımıyla kayıtları sayar. Grup fonksiyonları içerisinde yer alır ve çok hızlı sonuç getirir. SQL kullananların hiçbir zaman elinden düşmeyen bir fonksiyondur. Fakat buna rağmen yanlış bilinen kullanım alanları mevcut. Gelin birlikte inceleyelim.


Count'un birçok farklı kullanım alanı mevcuttur


1) Tüm kayıtların sayısını bulma:


Count'un klasik kullanımı olan sorgu sonucunda gelen tüm kayıtların sayısını bulma işlemidir. bunun en yaygın kullanımı count(*) şeklidir. Aşağıdaki SQL' de kayit_sayisi alanı personel tablosundaki tüm kayıtları sayısını verir. Parantez içindeki * her şey demektir. Dolayısıyla hiçbir şart koymadan tüm kayıtları sayar. Unutmayın, sorgu sonucunda gelen kayıtları sayılır. Sizin sorgunuzda where cümlesi ile bazı şartlar yazmışsanız, bu şartlara uyan kayıtlar sayılır.


select count(*) kayit_sayisi from personel;

2) Null olmayan kayıtların sayısını bulma:


Bu yazımızın başlığını oluşturan maddemize geldik. Count fonksiyonuna bir kolon ismini parametre olarak girerseniz, o kolon içerisinde null olmayan kayıtların sayısını alır. İşte can alıcı kısım bu. Birçok developer bu kullanımı tüm kayıtları saymak için kullanmakta ve fark etmeden yanlış sonuçlar almaktadır.


Aşağıdaki SQL' de kayit_sayisi alanı bu sefer mezuniyet_yili kolonundaki null olmayan, yani mezuniyet yılı değeri girilmiş kayıtları sayar. Bu kullanım şekliyle where şartında mezuniyet_yili is not null gibi bir şartı yazmadan istediğimiz sonucu bulabiliriz.


select count(mezuniyet_yili) kayit_sayisi from personel;

3) Kaç farklı değer olduğunu bulma:


Burada ise farklı bir kullanımdan bahsedeceğiz. Count(distinct column), şeklinde kullanım ise sayma işlemini bir tık daha ileri götürüyor. Distinct, tekrarlayan satırları bir kez getirmesiyle bilinir. count içerisine geldiği durumda ise; sıkı durun; ilgili kolonda kaç farklı değerin olduğunu sayar.


Aşağıdaki örnekte kayit_sayisi kolonu, kaç farklı mezuniyet yılı olduğunun sayısını verir. Örneğin, personel tablomuzda sadece 2005, 2007, 2010, 2012 yıllarında mezun olmuş personeller olduğunu ve tablodaki kayıt sayısının 50 olduğunu varsayalım. Fakat bu tarihlerde birden fazla personel mezun olmuş olabilir. Bu SQL bize 50 değil, 4 değerini verecektir. Çünkü 4 farklı mezuniyet yılı vardır.


select count(distinct mezuniyet_yili) kayit_sayisi from personel;

Count fonksiyonunun kullanım alanı bunlarla sınırlı değildir. Özelikle analitik fonksiyonlarda çok kullanılmaktadır. Bu yazıda bu konulara değinilmeyecektir.

369 görüntüleme0 yorum

Son Yazılar

Hepsini Gör

DECODE vs CASE

bottom of page