Serkan Ayyıldız

Meraklı bir yazılım uzmanı...

SQL Sum Max ve Count Sorguları

T-SQL meraklısı veritabanı uzmanlarına merhabalar :)

Her yeni makalemizde SQL database dünyasını yeniden keşfedip yeni konular öğrenirken bugünkü makalemizde Sum,Max ve Count konularını öğreneceğiz.Select sorgusuyla birlikte kullanılan bu 3 deyim ile veritabanı kayıtlarını kullanarak sayısal ifadelere ulaşmamız kolaylaşıyor ve istatistik amaçlı oldukça fayda sağlıyor denilebilir.
Şimdi sırasıyla sorguları öğrenelim ve her biri için örnek veritabanımız olan BakkalDB ile basit sorgu cümlecikleri kuralım..

SQL Sum Metodu

"Sum" sözcüğünü İngilizceden Türkçeye çevirdiğimiz tam anlamıyla "toplam" ifadesine karşılık gelmektedir ve sum deyimiyle veritabanındaki sayısal değerlerin toplamını bulabiliyoruz.Buradaki toplamdan kastımız tümünün sayısı değil her birinin tek tek toplama işlemiyle ortaya çıkan sonucunu yakalıyoruz.
Sum sorgusunun formatı ise:

Select Sum(Kolon) from Tablo

biçiminde olup sayısal değerlerle ifade edilen her satırdaki değeri tek tek toplayıp sorgu sonucunu önümüze getirir.

Konuya örnekle devam etmek için SQL Server Management Studio'yu açıp BakkalDB veritabanına bağlanıyor
ve bütün müşterilerimizin verdiği siparişlerin toplam değerini,diğer bir anlamda aldığımız tüm siparişlerin toplam tutarını Sum deyimini kullanarak Select sorgusu içerisinde çağırıyoruz:



Sum deyimi Select cümleciği içerisinde kullanılabildiği için aynı zamanda belirli bir koşula göre toplam değere ulaşabiliyoruz,bunu daha önce öğrendiğimiz where koşul sözcüğünü içerisinde sum deyimi içeren select sorgusunun sonuna yazmamız yeterlidir.
Örneğin MusteriID'si 1 olan müşterimizin bugüne kadar verdiği tüm siparişlerin toplam tutarını getirelim:



SQL Max Metodu

"Max" sözcüğü "Maximum" sözcüğünün kısaltılması olduğu için dilimize "en büyük" anlamı olarak çevrilebilir ve Max metodu ile veritabanındaki kayıtların en büyük değerini yine Select sorgusu ile yakalayabiliyoruz.Max metodu, Sum metodu gibi kayıtları tek tek toplamak yerine kayıtlardaki diğerlerine oranla yalnızca en büyük kaydı listeler.
SQL Max metodunun formatı ise:

Select Max(Kolon) from Tablo

biçimindedir.Örnek olarak yine BakkalDB veritabanımızdaki fiyatı en yüksek ürünün değerini yakalayalım:



Tıpkı Sum metodunda olduğu gibi Max metodu da Select cümlesi içeriğinde yer aldığından dolayı where deyimiyle
birlikte şart koşularak en büyük değeri getirebilir.
Örneğin AltKategoriID'si 1 olan ürünlerin en yüksek fiyatını getirelim:



SQL Count Metodu

Sum metoduyla karıştırılan bir metot olan "Count" sözcüğünün Türkçedeki karşılığı "sayı" sözcüğüdür ve veritabanındaki
kayıtların tek tek toplamını değil tamamının sayısını getirir.Yani herhangi bir toplama işlemi yoktur,basit sayma işlemini gerçekleştirir.
Count metodunun formatı ise:

Select Count(Kolon) from Tablo

şeklindedir,ancak count metodunun özelliği null (boş) gelen satırları yoksaymasıdır ve eğer kayıtlarda örneğin fiyat
bilgisi girilmemiş bir ürün varsa tüm ürünleri değil sadece fiyat değeri olan ürünlerin listesini getirir.O yüzden count ile verilerin tüm sayısını sağlıklı bir şekilde çekmeniz için;

Select Count(*) from Tablo

formatını kullanmanızı öneririm.Bu sayede eksik girilmiş kayıtları da ürün sayısına dahil etmiş olursunuz.Count metoduyla ilgili olarak örnek veritabanımızdaki müşterilerimizin sayısını bulalım:



Count metodu, sum ve max metotlarında olduğu gibi Select sorgusu içerisinde kullanıldığından dolayı where deyimi ile
belirli bir koşula bağlanarak gelen kayıtların sayısını getirebilir.Örneğin sadece KategoriID'si 2 olan alt kategorilerin
sayısını getirelim:



Count metodu, Sum ve Max metodlarının aksine sadece sayısal kayıtları değil tüm veri tipindeki kayıtları sayma konusuna dahil eder.Yani sum metoduyla tüm sayısal (örneğin ürünün fiyatı) değerler toplanırken count metodu ile tipi ne olursa olsun tüm kayıtların toplam sayısını getirir.

T-SQL sorgulama diline ait bugünkü öğrendiğimiz konuları pratik yapmak açısından sizde kendi sorgulamalarınızı
geliştirebilirsiniz.

Bir sonraki makalemizde görüşmek üzere hoşçakalın :)

Bir yorum bırak E-posta adresiniz yayınlanmayacaktır.

Menu