SQL Dilinde SUM Fonksiyonu: Detaylı Kullanım Kılavuzu
SQL (Yapısal Sorgulama Dili), veritabanlarından bilgi almayı ve manipüle etmeyi sağlayan güçlü bir dildir. Bu dilin temel bileşenlerinden biri olan SUM() fonksiyonu, sayısal bir sütundaki değerlerin toplamını hesaplamak için kullanılan bir toplama (aggregate) fonksiyonudur. Raporlama, finansal analiz veya genel veri özetleri oluştururken, belirli bir kriteri karşılayan tüm kayıtların toplam değerini bulmak hayati öneme sahiptir. Bu kılavuz, SUM() fonksiyonunun sözdiziminden başlayarak, çeşitli kullanım senaryolarını örneklerle açıklayacak ve bu güçlü fonksiyonu verimli bir şekilde kullanmanıza yardımcı olacak pratik bilgiler sunacaktır.
SQL SUM Fonksiyonunun Sözdizimi
SUM() fonksiyonunun temel sözdizimi aşağıdaki gibidir:
SELECT SUM(sutun_adi)
FROM tablo_adi
WHERE kosul;İsteğe bağlı olarak, yalnızca benzersiz değerlerin toplamını almak için DISTINCT anahtar kelimesi kullanılabilir:
SELECT SUM(DISTINCT sutun_adi)
FROM tablo_adi
WHERE kosul;Detaylı Açıklama
SUM() fonksiyonu, belirtilen bir sayısal ifadenin veya sütunun değerlerini toplar. Fonksiyonun bileşenleri şunlardır:
SUM(): Bu, toplama işlemini gerçekleştiren ana fonksiyondur.sutun_adiveyaexpression: Toplanacak değerleri içeren sayısal bir sütun adını veya sayısal bir değer döndüren herhangi bir ifadeyi (örneğin,Miktar * BirimFiyat) temsil eder. Bu ifade,INT,DECIMAL,FLOATgibi sayısal veri tiplerine sahip olmalıdır.DISTINCT(isteğe bağlı): Eğer bu anahtar kelime kullanılırsa,SUM()fonksiyonu yalnızca belirtilen sütundaki veya ifadedeki benzersiz değerlerin toplamını hesaplar. Yinelenen değerler toplama dahil edilmez. Genellikle bu anahtar kelimeye ihtiyaç duyulmaz ve kullanımı performansı etkileyebilir.FROM tablo_adi: Sorgunun hangi tablodan veri alacağını belirtir.WHERE kosul(isteğe bağlı): Toplama işlemine dahil edilecek satırları filtrelemek için kullanılır. Yalnızca belirtilen koşulu sağlayan satırlar toplanır.
SUM() fonksiyonu, varsayılan olarak NULL değerleri toplama işlemine dahil etmez. Yani, bir sütunda NULL değeri varsa, bu değer göz ardı edilir ve toplam etkilenmez.
Pratik Kullanım Örnekleri
Aşağıdaki örneklerde, bir satış tablosu olan Satislar'ı kullanacağız. Bu tablo, SatisID, UrunID, Miktar, BirimFiyat, SatisTarihi ve MusteriID sütunlarını içermektedir.
Örnek 1: Tüm Satışların Toplam Miktarını Bulma
Tüm satış kayıtlarındaki ürünlerin toplam miktarını bulmak için basit bir SUM() kullanımı:
SELECT SUM(Miktar) AS ToplamMiktar
FROM Satislar;Açıklama: Bu sorgu, Satislar tablosundaki tüm Miktar değerlerini toplar ve sonucu ToplamMiktar adıyla döndürür.
Örnek 2: Ürün Başına Toplam Satış Hacmini Hesaplama
GROUP BY ifadesiyle birlikte SUM() kullanarak her bir ürün için ayrı ayrı toplam satış miktarını hesaplayabiliriz:
SELECT UrunID, SUM(Miktar) AS UrunToplamMiktar
FROM Satislar
GROUP BY UrunID;Açıklama: Sorgu, UrunID'ye göre gruplandırma yapar ve her bir UrunID için ilgili satış miktarlarının toplamını hesaplar.
Örnek 3: Belirli Bir Tarihten Sonraki Toplam Geliri Hesaplama
WHERE koşulu ile belirli bir tarihten sonraki satışların toplam gelirini (miktar * birim fiyat) hesaplayabiliriz:
SELECT SUM(Miktar * BirimFiyat) AS ToplamGelir
FROM Satislar
WHERE SatisTarihi > '2023-01-16';Açıklama: Bu sorgu, 16 Ocak 2023 tarihinden sonra gerçekleşen satışların her biri için Miktar ile BirimFiyat'ı çarparak geliri bulur ve bu gelirlerin toplamını ToplamGelir olarak döndürür.
Örnek 4: Farklı Miktar Değerlerinin Toplamını Bulma
Eğer sadece benzersiz satış miktarlarının toplamını almak istiyorsanız, DISTINCT anahtar kelimesini kullanabilirsiniz:
SELECT SUM(DISTINCT Miktar) AS FarkliMiktarToplami
FROM Satislar;Açıklama: Bu sorgu, Satislar tablosundaki Miktar sütununda tekrar eden değerleri bir kez sayarak, yalnızca farklı Miktar değerlerinin toplamını hesaplar.
Örnek 5: Toplam Geliri Hesaplama ve Filtreleme (HAVING ile)
GROUP BY ile birlikte HAVING kullanarak, belirli bir eşiğin üzerindeki toplam gelire sahip ürünleri filtreleyebiliriz:
SELECT UrunID, SUM(Miktar * BirimFiyat) AS UrunToplamGelir
FROM Satislar
GROUP BY UrunID
HAVING SUM(Miktar * BirimFiyat) > 200;Açıklama: Bu örnek, her bir UrunID için toplam geliri hesaplar ve yalnızca toplam geliri 200'den fazla olan ürünleri listeler.
Önemli Notlar ve İpuçları
NULLDeğerler:SUM()fonksiyonu,NULLdeğerleri otomatik olarak göz ardı eder. EğerNULLdeğerleri sıfır olarak dahil etmek isterseniz,COALESCE()veyaISNULL()gibi fonksiyonları kullanmalısınız (örneğin,SUM(COALESCE(sutun_adi, 0))).Sayısal Olmayan Veri Tipleri:
SUM()yalnızca sayısal veri tipleriyle çalışır. Sayısal olmayan bir sütun üzerinde kullanılırsa hata verecektir. Gerekirse, veri tipini uygun bir sayısal türe dönüştürmek içinCAST()veyaCONVERT()gibi fonksiyonları kullanın.GROUP BYile Kullanım:SUM()fonksiyonunun gücü genellikleGROUP BYifadesiyle birleştiğinde ortaya çıkar. Bu kombinasyon, verileri belirli kategorilere göre gruplandırarak her grup için ayrı ayrı toplamları hesaplamanıza olanak tanır.HAVINGile Filtreleme:GROUP BYkullanıldığında, gruplar üzerinde filtreleme yapmak içinWHEREyerineHAVINGifadesi kullanılır.WHERE, gruplama yapılmadan önce satırları filtrelerken,HAVINGgruplama yapıldıktan ve toplama fonksiyonları uygulandıktan sonra grupları filtreler.Performans: Büyük veri kümelerinde
SUM()kullanımı, özellikleDISTINCTanahtar kelimesiyle veya karmaşık ifadelerle birleştiğinde performans üzerinde etki yaratabilir. İndeksleme, sorgu optimizasyonu ve uygun veri tipi seçimi gibi faktörler performansı artırabilir.
        
                
            
            
Yorum yap
Yorumlar