Ana içeriğe atla

Ms Sql Server ve Transact Sql Topluluk Fonksiyonları

Topluluk Fonksiyonları nedir?
Bir veya birden fazla  Ms Sql tablosundaki verilerin özetlerini almak için kullandığımız fonsiyonlara topluluk fonskiyonları denir , gayet ansiklopedik bir açıklama olduğunun farkındayım.Aslında buraya birde gülücük koymak isterdim.

Evet Topluluk Fonksiyonlarıyla uğraşacağız bu blogta buyrun devam edelim



Topluluk fonksiyonları Transact-Sql de bilindiği gibi 3 farklı grup altında değerlendirilebilir. Bunlar İşlevsel topluluk,İstatistiksel ve Süper Topluluklar dır- ki en çok kullanılan fonksiyonlar genelde İşlevsel ve Süper Topluluk fonksiyonlarıdır. Birazdan resimleri ve bilgilerini anlatmaya çabalayacağım fonksiyonlarda bunlarda oluşacaktır.Topluluk fonksiyonları ile bilmeniz ve blog sonunda net olarak aklınızda kalacak en önemli bilgi şu olmalıdır.Transact Sql topluluk fonksiyonları tek bir değer değil, bir değer kümesi üzerinde çalışmaktır.

Gelelim konunun Database oluşumuna; Hazır Veritabanı yedeklemediğim bilgisayarımda malesef her blogta yeni bir veritabanı oluşturmam gerekiyor elbette bende öyle yapıp yeni bir Ms Sql Database oluşturdum.Bu database'in konusu ise şu olacak; Bir table içinde Kasiyerlerim olacak bu kasiyerlerimin günlük nakit ve kartlı satışlarını kaydedeceğim sonra bunlara blog konum olan Transact-Sql Topluluk Fonksiyonlarından bir kaçını uygulayacağım.Cash adını verdiğim Ms Sql Tablomun görünümü ve içerisindeki veri tipleri şöyle oldu...

görüldüğü üzere gayet basit bir kaç alandan oluşan tablom budur.Şimdi içine bir kaç veri girmem gerekiyordu bunuda isim bulmakta zorlandığım için yine absürd isimlerle doldurdum.Ama kimse örneklerimin kötü olduğunu ileri süremez...


Evet hiç fena değil !... Türkücülerden kasiyer yaparak Transact-Sql anlatan bu blogta artık verilerimizde hazır olduğuna göre bakalım şu Topluluk Fonksiyonları ne işe yarıyor?

İşlevsel Fonksiyonlar:
MIN -MAX -SUM -AVG -COUNT ve COUNT_BIG
Bunlara ek olarak bir kaç fonksiyon daha var fakat onları OLAP ve Ms Sql İş Zekası bloglarımda yazmayı planladığımdan, saydığım bu T-sql fonksiyonlarıda konuyu anlatmama yeterli olacaktır.

Tüm topluluk fonksiyonlarımız sadece bir argümanla çalışabilirler bu bir deyim yada sütün olabilir sadece COUNT bu tanımın dışındadır.Tüm fonksiyon sonuçlarımız sabir bir değerdir ve ayrı bir sutünda gösterilebilir.

Yukarıdaki Ms Sql Table yapısına ve verilerine tekrar göz atın ve örnek sonuçları inceleyin.


T-SQL MIN - En düşük değeri bulun




SELECT MIN (Cash) FROM Cash

En düşün nakit değerini bulmak istediğim basit bir MIN Fonksiyonu kullanımı





SELECT Cash,CashierName
FROM Cash
WHERE Cash =(SELECT MIN (Cash) FROM Cash)


En düşük nakit değerin hangi kasiyere ait olduğunu bulmak için alt sorgum içinde MIN fonksiyonu kullandım.



T-SQL MAX - En yüksek değeri bulun

SELECT Card,CashierName
FROM Cash
WHERE Card =(SELECT MAX (Card) FROM Cash)

MIN fonksiyonu kullanımına benzer bu kez En Yüksek Kartlı satışı bulmak istedim.


MIN ve MAX fonksiyonları anlaşıldığı gibi en düşük ve en yüksek sayısal (int) veri tipleriniz üzerinde çalışabilmektedir.

T-SQL SUM - Bir değer sutünun toplamını bulun.

SELECT SUM (Cash) Cash FROM Cash

Bu fonksiyon ile Toplam nakit değerimi aldım
SUM fonksiyonuda numerik ve toplam almak istenilen sutünlarda işimize yarayacaktır.






T-SQL AVG - Belirttiğiniz değerin ortalamasını bulun.


SELECT AVG (Cash)
AvgCash FROM cash WHERE Cash < 50


50 den az olan nakit satışların ortalamasını bulmak için kullandığım AVG fonksiyonu ile sonucu almış oldum.



T-SQL COUNT - Bir sütuna göre diğer bir değer sayısını bulun.


SELECT CashDate,
COUNT (DISTINCT CashierName) CashierSaıyısı
FROM Cash
GROUP BY CashDate


Tüm tarihler içinde, her gün kaç kasiyerin veri kaydettiğini COUNT fonksiyonu ile buldum.






Şimdi burada biraz durup COUNT fonksiyonu için bir kaç açıklama daha yapmalıyız.Dizim içerisinde kullandığım DISTINCT  anahtar sözcüğü COUNT ile kullanıldığında görüldüğü gibi bir guruplama işlemi gerçekleşmiş fakat CashierName isimleri görüntülenmemiştir.Bunun nedenini DISTINCT ile CashierName Field'da bulunan Kasiyerlerin sayısını almak için kullanmış olmamdır.DISTINCT anahtar sözcüğünü bundan sonraki bloglarda sıkça göreceksiniz.COUNT ve COUNT_BIG - COUNT(*) kullanımı birbiri ile aynıdır sadece dönen veri tipi COUNT_BIG Fonksiyonunda BIGINT veri tipindedir.

İstatiksel Topluluk Fonksiyonları:
VAR - VARP - STDEV - STDEVP
Bu fonksiyonlar ise İstatiksek Topluluk fonksiyonları grubuna aittirler ve kısaca kullanımları şu şekilde olabilmektedir.

T-SQL VAR - VARP Varyasyon ve popülasyon değerlerini bulun.


 SELECT VAR (Cash) variance FROM Cash


Cash sutünumdaki Nakit tüm değerlerinin değişiklik yani varyasyanonu VAR İstatiksel Topluluk Fonksiyonu ile aldım.


SELECT VARP(Cash) populate FROM Cash


Cash sutünundaki Nakit değerlerinin değer popülasyon değişiklik değerini aldım




T-SQL STDEV - STDEVP Varsyasyon ve popülasyonun standart sapmalarını bulun.


SELECT STDEV (Cash) populate FROM Cash


Her iki İstatiksel fonksiyonun kullanımı aynı olup sonuçları varyasyon ve populasyon değerleri olarak birbirinden farklıdır.



Süper Topluluk Fonksiyonları:
CUBE ve ROLLUP Operatörleri
Süper Topluluk Fonksiyonları işlemleri ve T-SQL Query özellikleri malesef örnekteki küçük bir table ile anlatamıyacağım.Zira CUBE ve ROLLUP uygulama alanı veri ambarlarıdır.Veri ambarlamak, veri küpleri içinde bu oparatörlerin kullanımını Ms Sql İş Zekası ve OLAP konulu yazmayı planladığım bloglarda görebileceksiniz.


Evet Ms Sql Topluluk fonksiyonları konumuza burada bir virgül koyalım.Bu blog altında yazmam gereken HAVING - ORDER BY- GROUP BY gibi kalıpları bir sonraki "Ms Sql Server ve Transact Sql Topluluk Fonksiyonları -2" ismini taşıyacak blogtan tekrar gelerek izleyebilirsiniz.


      Bu Yazının Sponsorları













Yorumlar

Bu blogdaki popüler yayınlar

Firebird SQL Table oluşturma ve SQL komutları

2 nci  Firebird SQL veritabanı blogunda bu kez mevcut Firebird veritabanına ISQL ile bağlanmayı veritabanı nesnelerini oluşturmayı (create table), Kayıt eklemeyi (ınsert) ve kayıtları izlemeyi (show) ile önemli SQL komutlarını anlatmaya çalışacağım...

Firebird Veritabanı Nedir ? Nasıl Kullanılır

Firebird ücretsiz veritabanı kullanmaya ne dersiniz.Üstelik hiç bir süre ve veri sınırı olmadan kulağa hoş geliyor değilmi.Bu Blogta Borland açık kaynak interbase 6 sürümünden sonra ortaya çıkmış ve gelişimini sürekli sürdürmüş Firebird veritabanına bir göz atıcaz. İnternet üzerinde Firebird ile kaynağa çok sık rastlamazsınız artık bu blogtan Firebird ile ilgili bilgileri takip edebilirsiniz...

Asp.Net Access veritabanina resim ve nesne kaydetmek OLE Nesnesi

Ms Access ile ilgili geçmiş yazılarım arasında biraz vakit geçirmişseniz, Ms Access form uygulamaları yada veritabanı olarak kullanmayı sevdiğimi anlamışsınızdır. Birazdan size anlatmaya çalışacağım konu Ms Access veritabanı olarak kullandığımız bir Asp.Net Web projesinde resimleri ve dosyaları paket halinde veritabanının içine gömmek olacak.Neden bilmiyorum bu konuda Türkçe kaynak yok, merak etmeyin bu yazı size iyi gelecek...