8 Nisan 2012 Pazar

15. SQL COUNT FONKSİYONLARI

  • Tablo içerisinde herhangi bir sayma işlemi gerçekleştirmek için COUNT fonksiyonu kullanılmaktadır.

Söz dizimi: SELECT COUNT(<sütun adı>) FROM <tablo adı>

1-) COUNT(*) KULLANIMI

  • COUNT fonksiyonu (*) ile kullanıldığında FROM ile belirtilen tablodaki toplam satır sayısını verir.
Örnek: Aşağıdaki örnekte Çalışanlar (Employees) tablosundaki kayıt sayısı listelenmiştir.

Sorgu: SELECT COUNT(*) AS [Kayıt Sayısı] FROM Employees


Not: AS Kullanımını bir sonraki dersimizde anlatacağım(Ders-16). Bilmeniz gereken AS ile Temp(geçici) sütun oluşturup adı 'Kayıt Sayısı' olsun diyoruz. AS kullanmadığımız takdirde sorgumuzu yaptığımızda sütun ismimiz 'No Column Name' olarak görünür.



Örnek: İkinci örneğimizde kriterleri arttıralım.Mesela Şehri('City') Londra olan çalışanlarımızın sayısını bilmek isteyelim.Bu durumda sorgumuz aşağıdaki gibidir.

Sorgu: SELECT COUNT(*) AS [Kayıt Sayısı] FROM Employees WHERE City='London'




2-) COUNT DISTINCT

  •  DISTINCT anahtar kelimesi COUNT ile birlikte kullanıldığında, belirtilen sütundaki benzersiz kayıtların sayısını verir.
Söz dizimi: SELECT COUNT(DISTINCT <sütun adı> FROM <tablo adı>

Örnek: Bu örneğimizde kaç farklı müşteriden sipariş aldığımızı bulacağımız sorgumuzu yazalım.

Sorgu: SELECT COUNT (DISTINCT CustomerID)FROM Orders



3-) COUNT (<Sütun Adı>)
  • COUNT fonksiyonu bir sütun adı ile birlikte kullanıldığında, o sütundaki boş (NULL) olmayan kayıtların sayısını verir.
Örnek: Bu örneğimizde SevkBölgesi (ShipRegion) değeri 'Null' olmayan Siparişleri (Orders) sorguluyoruz. Dikkat etmemiz gereken 2.sorgumuzun özelliği SevkBölgesi Boş olmayan Siparişleri sorgulamış olmamız.

Sorgu: SELECT COUNT (ShipRegion) AS [SevkBölgesi] FROM Orders 

Ders 16'ya geçebilirsiniz.



2 yorum:

  1. Hocam emeğinize sağlık çok güzel olmuş anladım fakat bazı şeyler oturmadı sanki mesela şehirdeki herkesi aratıyoruz ama belirli kişileri aratalım yani şöyle söyleyim daha rahat ifade ediyim kendimi bir okul var öğrenci tablosu var öğrenciler sınava girmiş olsun bende sadece sınava giren kişileri listeletmek istesem daha da açıkçası şöyle bir sorgu cümlem olsun

    Her dersten kaç öğrencinin sınava girdiğini listeleyiniz.

    hani dersler listelenecek derse göre öğrenciler listelenecek ve sadece sınava giren öğrenciler listelenecek

    YanıtlaSil
    Yanıtlar
    1. Merhabalar,

      Biraz geç dönüyorum kusura bakmayın.

      İstediğinizi şu şekilde cevaplayabilirim. İşçi tablosunda city bazlı gruplarsak yani sizde sınava giren öğrencileri ders bazlı gruplamak gibi.

      SELECT City,count(*) AS EmployeesCount FROM Employees GROUP BY city

      bu şekilde her şehirden kaç çalışan olduğunu alabiliriz.

      sizde;

      SELECT SinavAdi,count(*) AS SinavaGirenSayisi FROM Sinavlar GROUP BY SinavAdi

      şeklinde kullanabilirsiniz.

      Sil