Veritabanları, modern dünyanın bilgi depolarıdır. Bu depolarda saklanan verilerin anlamlı hale getirilmesi, işletmelerin ve araştırmacıların doğru kararlar almasına yardımcı olur. İşte tam bu noktada SQL Aggregate fonksiyonları devreye girer. Bu fonksiyonlar, veri kümeleri üzerinde hesaplamalar yaparak özet bilgiler sunar ve veri analizini kolaylaştırır. Bu makalede, SQL Aggregate fonksiyonlarını derinlemesine inceleyeceğiz, kullanım alanlarını örneklerle açıklayacağız ve veri analizi süreçlerinizde nasıl kullanabileceğinizi göstereceğiz.
SQL Aggregate fonksiyonları, bir sütundaki değerler üzerinde işlem yaparak tek bir sonuç döndüren fonksiyonlardır. Bu fonksiyonlar, verileri gruplandırmak, özetlemek ve analiz etmek için kullanılır. Temel olarak, bir veri kümesini alır ve bu kümeden anlamlı bir özet çıkarır.
SQL'de en sık kullanılan Aggregate fonksiyonları şunlardır:
COUNT() fonksiyonu, bir tablodaki toplam satır sayısını veya belirli bir koşulu sağlayan satır sayısını bulmak için kullanılır. İki farklı kullanımı vardır:
COUNT(*): Tablodaki tüm satırların sayısını döndürür. NULL değerleri de dahil olmak üzere tüm satırları sayar.COUNT(sütun_adı): Belirtilen sütundaki NULL olmayan değerlerin sayısını döndürür.Örnek: Müşteri tablosundaki toplam müşteri sayısını bulmak için:
SELECT COUNT(*) AS ToplamMusteriSayisi FROM Musteriler;Örnek: E-posta adresi olan müşteri sayısını bulmak için:
SELECT COUNT(eposta) AS EpostaAdresiOlanMusteriSayisi FROM Musteriler;SUM() fonksiyonu, bir sütundaki sayısal değerlerin toplamını hesaplar. Bu fonksiyon sadece sayısal veri tipleri (INT, FLOAT, DECIMAL vb.) ile kullanılabilir.
Örnek: Siparişler tablosundaki toplam sipariş tutarını bulmak için:
SELECT SUM(siparis_tutari) AS ToplamSiparisTutari FROM Siparisler;AVG() fonksiyonu, bir sütundaki sayısal değerlerin ortalamasını hesaplar. Bu fonksiyon da sadece sayısal veri tipleri ile kullanılabilir. NULL değerler ortalama hesaplamasına dahil edilmez.
Örnek: Ürünler tablosundaki ürünlerin ortalama fiyatını bulmak için:
SELECT AVG(fiyat) AS OrtalamaUrunFiyati FROM Urunler;MIN() fonksiyonu, bir sütundaki en küçük değeri bulurken, MAX() fonksiyonu en büyük değeri bulur. Bu fonksiyonlar, sayısal, metinsel veya tarihsel veri tipleri ile kullanılabilir.
Örnek (MIN): Ürünler tablosundaki en ucuz ürünün fiyatını bulmak için:
SELECT MIN(fiyat) AS EnUcuzUrunFiyati FROM Urunler;Örnek (MAX): Çalışanlar tablosundaki en yüksek maaşı bulmak için:
SELECT MAX(maas) AS EnYuksekMaas FROM Calisanlar;Aggregate fonksiyonları tek başlarına kullanıldığında, tablodaki tüm veriler üzerinde işlem yaparlar. Ancak, verileri belirli kriterlere göre gruplandırmak ve her grup için ayrı ayrı özet bilgiler elde etmek için GROUP BY deyimi ile birlikte kullanılırlar.
GROUP BY deyimi, belirtilen sütunlardaki değerlere göre satırları gruplandırır. Ardından, Aggregate fonksiyonları her bir grup için ayrı ayrı çalışır.
Örnek: Müşterileri şehirlere göre gruplandırıp, her şehirdeki müşteri sayısını bulmak için:
SELECT sehir, COUNT(*) AS MusteriSayisiFROM MusterilerGROUP BY sehir;Bu sorgu, Musteriler tablosundaki müşterileri şehirlere göre gruplandırır ve her şehirdeki müşteri sayısını MusteriSayisi adıyla döndürür.
HAVING deyimi, GROUP BY deyimi ile birlikte kullanılır ve gruplandırılmış veriler üzerinde filtreleme yapmak için kullanılır. WHERE deyimi tekil satırları filtrelerken, HAVING deyimi gruplandırılmış satırları filtreler.
Örnek: Müşterileri şehirlere göre gruplandırıp, 10'dan fazla müşterisi olan şehirleri listelemek için:
SELECT sehir, COUNT(*) AS MusteriSayisiFROM MusterilerGROUP BY sehirHAVING COUNT(*) > 10;Bu sorgu, Musteriler tablosundaki müşterileri şehirlere göre gruplandırır, her şehirdeki müşteri sayısını hesaplar ve sadece 10'dan fazla müşterisi olan şehirleri listeler.
Aggregate fonksiyonları, veri analizinde geniş bir kullanım alanına sahiptir. İşte bazı örnekler:
Bir e-ticaret şirketinin veritabanında aşağıdaki tabloların bulunduğunu varsayalım:
Bu tablolardaki verileri kullanarak aşağıdaki sorulara cevaplar bulabiliriz:
SELECT SUM(siparis_tutari) AS ToplamSatisTutari FROM Siparisler; SELECT Urunler.ad, SUM(SiparisDetaylari.adet) AS ToplamSatisAdediFROM SiparisDetaylariJOIN Urunler ON SiparisDetaylari.urun_id = Urunler.urun_idGROUP BY Urunler.adORDER BY ToplamSatisAdedi DESCLIMIT 1; SELECT kategori, AVG(fiyat) AS OrtalamaUrunFiyatiFROM UrunlerGROUP BY kategori; SELECT sehir, COUNT(*) AS MusteriSayisiFROM MusterilerGROUP BY sehirORDER BY MusteriSayisi DESCLIMIT 1;SQL Aggregate fonksiyonları, veritabanlarındaki verileri analiz etmek ve anlamlı özet bilgiler elde etmek için güçlü araçlardır. COUNT(), SUM(), AVG(), MIN() ve MAX() gibi temel fonksiyonlar, GROUP BY ve HAVING deyimleriyle birlikte kullanılarak daha karmaşık analizler yapılabilir. Bu makalede anlatılan bilgiler ve örnekler sayesinde, SQL Aggregate fonksiyonlarını veri analizi süreçlerinize entegre edebilir ve verilerinizden daha fazla değer elde edebilirsiniz.