SQL Aggregate Fonksiyonları: Veri Analizinde Güçlü Araçlar - TEKNOLOJİ - BİLGİ MERKEZİ | Bilginin Merkezi

SQL Aggregate Fonksiyonları: Veri Analizinde Güçlü Araçlar - TEKNOLOJİ - BİLGİ MERKEZİ | Bilginin Merkezi

SQL Aggregate Fonksiyonları: Veri Analizinde Güçlü Araçlar


08 Ekim 2025

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ı Nedir?

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.

Temel Aggregate Fonksiyonları

SQL'de en sık kullanılan Aggregate fonksiyonları şunlardır:

  • COUNT(): Bir sütundaki toplam satır sayısını veya belirli bir koşulu sağlayan satır sayısını sayar.
  • SUM(): Bir sütundaki sayısal değerlerin toplamını hesaplar.
  • AVG(): Bir sütundaki sayısal değerlerin ortalamasını hesaplar.
  • MIN(): Bir sütundaki en küçük değeri bulur.
  • MAX(): Bir sütundaki en büyük değeri bulur.

COUNT() Fonksiyonu

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

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

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() ve MAX() Fonksiyonları

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;

GROUP BY Deyimi ile Aggregate Fonksiyonları

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 ile Filtreleme

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ının Kullanım Alanları

Aggregate fonksiyonları, veri analizinde geniş bir kullanım alanına sahiptir. İşte bazı örnekler:

  • Satış Analizi: Toplam satış tutarı, ortalama sipariş değeri, en çok satan ürün gibi metrikleri hesaplamak için kullanılabilir.
  • Müşteri Analizi: Müşteri sayısı, ortalama müşteri harcaması, en sık alışveriş yapan müşteriler gibi metrikleri hesaplamak için kullanılabilir.
  • Finansal Analiz: Gelir, gider, kar, zarar gibi metrikleri hesaplamak için kullanılabilir.
  • Web Analizi: Ziyaretçi sayısı, sayfa görüntüleme sayısı, ortalama oturum süresi gibi metrikleri hesaplamak için kullanılabilir.

Örnek Senaryo: E-Ticaret Veri Analizi

Bir e-ticaret şirketinin veritabanında aşağıdaki tabloların bulunduğunu varsayalım:

  • Musteriler: Müşteri bilgileri (musteriid, ad, soyad, sehir vb.)
  • Urunler: Ürün bilgileri (urunid, ad, fiyat, kategori vb.)
  • Siparisler: Sipariş bilgileri (siparisid, musteriid, siparistarihi, siparistutari vb.)
  • SiparisDetaylari: Sipariş detay bilgileri (siparisid, urunid, adet, birim_fiyat vb.)

Bu tablolardaki verileri kullanarak aşağıdaki sorulara cevaplar bulabiliriz:

  1. Toplam satış tutarı nedir?
  2. SELECT SUM(siparis_tutari) AS ToplamSatisTutari FROM Siparisler;
  3. En çok satan ürün hangisidir?
  4. SELECT Urunler.ad, SUM(SiparisDetaylari.adet) AS ToplamSatisAdediFROM SiparisDetaylariJOIN Urunler ON SiparisDetaylari.urun_id = Urunler.urun_idGROUP BY Urunler.adORDER BY ToplamSatisAdedi DESCLIMIT 1;
  5. Her kategori için ortalama ürün fiyatı nedir?
  6. SELECT kategori, AVG(fiyat) AS OrtalamaUrunFiyatiFROM UrunlerGROUP BY kategori;
  7. Hangi şehirde en çok müşteri bulunmaktadır?
  8. SELECT sehir, COUNT(*) AS MusteriSayisiFROM MusterilerGROUP BY sehirORDER BY MusteriSayisi DESCLIMIT 1;

Sonuç

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.


Facebook X