• Ana Sayfa
  • C#
  • C# istatistiksel Sorgulamalar (AVG-SUM-COUNT-FIRST-LAST-MİN-MAX-STDEV-GROUP BYE -HAVING)

C# istatistiksel Sorgulamalar (AVG-SUM-COUNT-FIRST-LAST-MİN-MAX-STDEV-GROUP BYE -HAVING)

 C# istatistiksel Sorgulamalar (AVG-SUM-COUNT-FIRST-LAST-MİN-MAX-STDEV-GROUP BYE -HAVING)
Okunuyor C# istatistiksel Sorgulamalar (AVG-SUM-COUNT-FIRST-LAST-MİN-MAX-STDEV-GROUP BYE -HAVING)

Selamun aleyküm otomasyon projelerimizin hemen hemen hepsinde ihtiyacımız olan cari modülünde bazı işlemler yapmamız gerekebilir.Bu işlemler için uzun uzun algoritmalar kullanmak yerine C# istatistiksel Sorgulamalar yaparak hem kod şişmesini önleyebilir , hem kod karmaşasından kurtulabilir hemde yüksek performans sağlayabiliriz.

 İSTATİSTİKSEL SORGULAMALAR YAPMAK

 



Sorgulamalarda matematiksel fonksiyonlar:

AVG(kolon ):
Girilen kolondaki sayıların aritmetik ortalama degerini geri yollar
SUM(kolon ):
Girilen kolondaki sayıların toplamını yollar
COUNT(kolon ):
Boş degerler haric, girilen kolondaki satır sayısını yollar
COUNT(* ):
Verilen tablodaki satır sayısını yollar
FIRST(kolon ):
Girilen kolondaki ilk degeri yollar
LAST(kolon ):
Girilen kolondaki son degeri yollar
MAX(kolon ):
Girilen kolondaki en yuksek degeri yollar
MIN(kolon ):
Girilen kolondaki en dusuk degeri yollar
STDEV(kolon ):
Girilen kolondaki basit istatiksel standard sapma degerini yollar
STDEVP(kolon ):
Girilen kolondaki nüfus istatiksel standard sapma degerini yollar

Sütun İçindeki Verilerin Ortalamasını Hesaplama (AVG)

Belirli bir sütundaki sayısal verilerin ortalamalarını bularak sonucun gösterilmesinde AVG
işleci kullanılır.

Formülümüz :

OleDbCommand komutumuz = new OleDbCommand("select AVG (alan_adı) from tablo_adı ",baglan);

 

Örneğin memur tablosundaki memurların maaşlarının ortalamasını hesaplayan Sql komutunu
yazalım.

 

    OleDbCommand sorgu = new OleDbCommand("select AVG (maas) from memur ",baglan);

 

Dilersek belli bir koşula göre de ortalama hesaplayabiliriz. Memur tablosundaki maaşı
2500 tl den düşük olanların maaş ortalamasını bulalım.

 

  OleDbCommand sorgu = new OleDbCommand("select AVG (maas) from memur where maas<2500 ",baglan);

 

Sütun İçindeki Verilerin Toplamını Hesaplama (SUM)

Belirli bir sütundaki sayısal verilerin toplamını hesaplamak için Sum işleci kullanılır.

 

 OleDbCommand sorgu = new OleDbCommand("select Sum (alan_adı) from tablo_adı ", baglan);

 

Örneğin öğrenci tablosundaki öğrencilerin notlarını toplamını hesaplayalım:

 

 OleDbCommand sorgu = new OleDbCommand("select Sum (notlar) from ogrenci ", baglan);

 

Eğer koşula göre yapacaksak where işleciyle beraber koşulu belirtmemiz gerekir.

(COUNT) Kayıtları Saydırma İşlemi

Sorgunun ürettiği satır sayısını döndürür.

 

  OleDbCommand kmt = new OleDbCommand("select count (*) from tablo_adı ", baglan);

 

Personel tablosundaki kayıt sayısını listelemek için aşağıdaki komutu yazmalıyız.

 

   OleDbCommand say = new OleDbCommand("select count (*) from Personel ", baglan);

 

Ya da personel tablosundaki yaşı 45 den küçük olan personel sayısını bulmak için:

 

OleDbCommand say = new OleDbCommand("select count (*) from ogrenci where yas<45 ", baglan);

 

COUNT(kolon )

Boş degerler haric, girilen kolondaki satır sayısını yollar

 

  OleDbCommand kayit_say = new OleDbCommand("select Count(alan_adi) from tablo_Adi ", baglan);

 

ogrenci tablosundaki yaşı alanında bulunan dolu kayıtları listelemek için kullanılır:

 

  OleDbCommand kayit_say = new OleDbCommand("select Count(yasi) from ogrenci ", baglan);

 

 FIRST(kolon )

Girilen kolondaki ilk degeri alır ve kullanıcıya döndürür

 

 OleDbCommand komut = new OleDbCommand("select First(alan_adi) from tablo_Adi ", baglan);

 

Hesap tablosunun içersin de ki sayı alanından ilk veriyi bulma;

 

 OleDbCommand komut = new OleDbCommand("select First(sayi) from hesap ", baglan);

 

Last( kolon )

Girilen kolondaki son degeri alır ve kullanıcıya döndürür

 

 OleDbCommand komut = new OleDbCommand("select Last(alan_adi) from tablo_Adi ", baglan);

 

Hesap tablosunun içersin de ki sayı alanından son veriyi bulma;

 

 OleDbCommand komut = new OleDbCommand("select Last(sayi) from hesap ", baglan);

Sütun İçindeki En Büyük veya En Küçük Değerleri Gösterme (MİN\MAX)



Belirli bir sütundaki en büyük veriyi görüntülemek için MAX, en küçük veriyi görüntülemek
için ise MİN fonksiyonları kullanılır.

 OleDbCommand komut = new OleDbCommand("select min(alan_adi) from tablo_Adi ", baglan);
OleDbCommand komut = new OleDbCommand("select max(alan_adi) from tablo_Adi ", baglan);

Örneğin memur  tablosundaki en yüksek maaşı listeleyelim:

  OleDbCommand komut = new OleDbCommand("select max(maas) from memur ", baglan);

Örneğin memur  tablosundaki en düşük maaşı listeleyelim:

     OleDbCommand komut = new OleDbCommand("select min(maas) from memur ", baglan);

STDEV(kolon )

Girilen kolondaki basit istatiksel standart sapma değerini yollar

 

  
 OleDbCommand komut = new OleDbCommand("select STDEV (alan_adi) from tablo_Adi ", baglan);

 

Örneğin memur tablosundaki maaşların standart sapmasını hesaplayalım:

 

   OleDbCommand komut = new OleDbCommand("select STDEV (maas) from memur ", baglan);

 

GROUP BY Kullanımı

Girilen kolondaki nüfus istatiksel standart sapma değerini yollar

Bir fonksiyonu kullanırken bazı durumlarda GROUP BY fonksiyonu ile belli alanlara göre
gruplamak gerekebilir.

GROUP BY Kullanım Biçimi

 

            OleDbCommand komut = new OleDbCommand("select Alan_adi, Fonksiyon(Alan_adi2) from tablo_Adi group by alan_adi ", baglan);

 

Aşağıdaki gibi Ürünler tablomuz olsun

 

 

Örnek: Urun_adi alanına göre bir gruplama işlemi yapılmıştır. Ve her grubun fiyatı ayrı olarak
toplanmıştır.

 

 OleDbCommand komut = new OleDbCommand("select Urun_adi, SUM(Fiyat) as toplam  from urun group by Urun_Adi", baglan);

 

Çıktısı:

Aşağıdaki örnekte bu ismi daha anlamlı hale nasıl getirildiğini görebilirsiniz.

Örnek 2:

            OleDbCommand komut = new OleDbCommand("select Urun_adi, Count(Urun_adi) as Urun_sayisi  from urun group by Urun_Adi", baglan);

Çıktısı:

Burada ürünler gruplanıp, hangi üründen kaç tane olduğu bilgisi elde edilmiş. Burada AS ile
ilgili alanın adı daha anlamlı bir hale getirilmiştir

 

HAVING Kullanımı

HAVING yapısı temelde WHERE ile aynı görevi yapmaktadır. GROUP BY ile kullanılır.
Where ifadesi ile belirtilen kriter Group By uygulanmadan önce geçerli olurken, Having ifadesi
ile belirtilen kriter ise group by uygulandıktan sonra ortaya çıkan verileri filtrelemek
için kullanılır.
Ayrıca Where ifadesinden sonra sum, avg gibi fonksiyonlar kullanılamazken, Having ile kullanılabilir.

 

HAVING Kullanım Biçimi



OleDbCommand komut = new OleDbCommand("select Alan_adi from tablo_Adi having alan_adi operator deger ", baglan);

 

Burada operatör ile belirtilen yere =, <, >, % gibi operatörler kullanılır.
Aşağıdaki gibi tablomuz olsun.

 

Örnek 1:

  OleDbCommand komut = new OleDbCommand("select Sehir, Sum(maas) as Toplam_Maas from personel where maas >2000 group by Sehir ", baglan);

Çıktısı:

Bu örnekte WHERE kullanılarak maaşı 2000 TL den fazla olan personeller seçilmiş ve bunlar
gruplanarak illere maaşları toplamları bulunmuştur.
Burada görüleceği üzere WHERE ifadesi ile önce ki kriteri belirttik ve tablomuzdaki bazı kayıtlar
devre dışı bıraktık. Sonrada kalan kayıtları grupladık.

Örnek 2:

            OleDbCommand komut = new OleDbCommand("select Sehir, Sum(maas) as toplam_Maas from personel where maas>2000 group by sehir having sehir like 'S%'", baglan);

Çıktısı:

Bu örnek aslında birinci örneğin devamı gibidir. WHERE ile bir şart koyup kayıtları azalttıktan
sonra Group By ile grupladık. Daha sonra bu gruplanmış veriye ayrı bir şart koşuyoruz.
Yani illere göre maaş toplamı 2000 den büyük olan kayıtları bulup sonra bunları şehire göre
grupladık ve ortaya çıkan bu kayıtlardan şehir alanı S harfi ile başlayanları seçtik.

HAVING Kullanma Kuralları

• Select komutunda GROUP BY yoksa HAVING geçersiz olur.
• HAVING sözcüğünü izleyen ifade içinde SUM, MIN, MAX, AVG, COUNT fonksiyonlarından
en az biri mutlaka olmalıdır.
• HAVING sözcüğü sadece ve sadece gruplanmış verilerin işlemleri için geçerlidir.
• WHERE ile birlikte bir Select komutu içinde kullanılabilir.

WHERE ve HAVING arasındaki fark:

WHERE bir tablonun tek satırları üzerinde işlem yapan koşullar içinde geçerlidir. HAVING
gruplanmış verilerin işlemleri için geçerlidir.

Diğer yazılım makalelerimiz için

Facebook Grubumuz İçin Tıklayın

Bu konudaki diğer makalemiz buyrun :

C# istatistiksel Sorgulamalar || Kaynak Kodlar || Örnek Proje

Seo Keyword
C# istatistiksel Sorgulamalar , C# istatistiksel Sorgulamalar , C# istatistiksel Sorgulamalar , C# istatistiksel Sorgulamalar , C# istatistiksel Sorgulamalar
Kaynakça
• Ramazan Şerif Akbuz • AKTAŞ, V. (2014). Her Yönüyle C# 6.0.Kodlab. İstanbul: Yenibosna. • ALGAN, S. (2013). Her Yönüyle C#. Pusula. İstanbul: Beşiktaş. • http://www.megep.meb.gov.tr/mte_program_modul/moduller_pdf/Nesne%20 Tabanl%C4%B1%20Programlamada%20Veri%20Y%C3%B6netimi.pdf



Yapılan Yorumlar

Bir Cevap Yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.