SUM, COUNT, MAX, MIN, AVG, GROUP BY

Kategori: SQL , 31 Temmuz 2019 , JanFranco


SUM fonksiyonu toplam değeri bulmak için, COUNT fonksiyonu değerleri saymak için, MAX ve MIN fonksiyonları maximum ve minimum değerleri bulmak için AVG fonksiyonu ise ortalama değeri bulmak için kullanılır:


SELECT SUM(LINENET), COUNT(*), MIN(LINENET), MAX(LINENET), AVG(LINENET) FROM SALES WHERE BRANCH = 'Istanbul Subesi'
Bu sorguyu çalıştırdığımızda, İstanbul şubesindeki toplam satış fiyatını, toplam ürün satışını, satılan ürünün minimum ve maximum fiyatlarını ve toplam satılan ürünlerin fiyatlarının ortalamasını bulabiliriz. Tek tek de yazabiliriz, hepsini tek satırda da yazabiliriz, fark etmez. Bu sorguyu çalıştırdıktan sonra karşımıza result kısmında tek satırlık bir tablo gelir. Sütunların isimleri No column name olarak gözükür. Bunun sebebi isim vermememizdir. İsim vererek tekrar çalıştıralım: (isimlerin başına As koymak zorunda değiliz):


SELECT SUM(LINENET) AS TOPLAMSATIS, COUNT(*) AS SATIRSAYISI, MIN(LINENET) AS ENDUSUKFIYAT, MAX(LINENET) AS ENYUKSEKFIYAT, AVG(LINENET) AS AVERAJSATIS FROM SALES WHERE BRANCH = 'İstanbul Subesi'
Tek bir şube için değil de tüm şubeler için görmek istersek, aşağıdaki sorguyu çalıştırabiliriz. 81 şube olduğundan 81 satır ile, her şubenin satış rakamları vs. görebiliriz:


SELECT BRANCH, SUM(LINENET) AS TOPLAMSATIS, COUNT(*) AS SATIRSAYISI, MIN(LINENET) AS ENDUSUKFIYAT, MAX(LINENET) AS ENYUKSEKFIYAT, AVG(LINENET) AS AVERAJSATIS FROM SALES GROUP BY
Şimdi şubeleri en yüksek satış rakamına göre sıralayacağız:


SELECT BRANCH SUBE ISMI, SUM(LINENET) TOPLAMSATIS
GROUP BY ORDER BY TOPLAMSATIS DESC
Sadece 50.000 ve üzeri toplam satış fiyatı için:


SELECT BRANCH SUBEADI, SUM(LINENET) TOPLAMSATIS FROM SALES GROUP BY BRANCH HAVING SUM(LINENET) > 50000 ORDER BY TOPLAMSATIS DESC
GROUP BY komutunu DISTINCT ile kullanmak istersek, fonksiyonun içine sütun isminden önce DISTINCT yazmamız gerekir:


SELECT BRANCH SUBEADI, COUNT(DISTINCT CLIENTNAME) MUSTERISAYISI FROM SALES GROUP BY BRANCH HAVING COUNT(DISTINCT CLIENTNAME) <> 0 ORDER BY MUSTERISAYISI DESC
Böyle bir kullanımda, şubelerimizi müşteri sayımıza göre sıraladık ve aynı müşteriyi iki defa almadık.


Sonraki Yazı: JOIN
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın