SQL GROUP BY ve Aggregate Fonksiyonlar Kullanımı


SQL GROUP BY ve Aggregate Fonksiyonlar Kullanımı

Veritabanı sorgularında özet bilgileri elde etmek, raporlar hazırlamak veya analizler yapmak için SQL'deki GROUP BY ifadesi ve toplama (aggregate) fonksiyonları büyük önem taşır. SQL GROUP BY ve aggregate fonksiyonlar sayesinde birden fazla kaydı belirli bir kritere göre gruplayabilir, her grup için sayma, toplama, ortalama alma gibi işlemler kolayca yapılabilir.

SQL GROUP BY ve Aggregate Fonksiyonlar Nedir?

SQL GROUP BY, tablo verilerini belirtilen bir veya birden fazla sütuna göre gruplamak için kullanılır. Aggregate fonksiyonlar ise bu gruplar üzerinde toplu işlemler yapar. En çok kullanılan aggregate fonksiyonlar şunlardır: COUNT (sayı), SUM (toplam), AVG (ortalama), MAX (en büyük değer), MIN (en küçük değer).

Temel Kullanım ve Örnekler

Aşağıda, SQL GROUP BY ve aggregate fonksiyonlar ile ilgili temel bir örnek yer almaktadır. "satislar" adında bir tabloyu düşünelim:

-- satislar tablosu örnek yapısı
-- id | urun_ad | miktar | fiyat

SELECT urun_ad, SUM(miktar) AS toplam_satis
FROM satislar
GROUP BY urun_ad;

Bu sorgu, her ürün için toplam satışı gösterir. GROUP BY urun_ad ifadesi ile aynı ürüne sahip kayıtlar gruplanır ve her bir grup için SUM(miktar) kullanılarak toplam satış hesaplanır.

Sık Kullanılan Aggregate Fonksiyonlar

  • COUNT(): Grup başına kayıt sayısını döndürür.
  • SUM(): Bir sütunun tüm değerlerinin toplamını alır.
  • AVG(): Bir sütunun değerlerinin ortalamasını verir.
  • MAX(): Grup içindeki en büyük değeri bulur.
  • MIN(): Grup içindeki en küçük değeri bulur.
-- Her ürünün ortalama fiyatı
SELECT urun_ad, AVG(fiyat) AS ortalama_fiyat
FROM satislar
GROUP BY urun_ad;

-- Satılan total ürün sayısı
SELECT COUNT(*) AS toplam_satis_sayisi
FROM satislar;

GROUP BY İle Birden Fazla Sütun Kullanımı

SQL GROUP BY birden fazla sütunu destekler. Böylece veriler çoklu kritere göre gruplanabilir. Örneğin, ürün adı ve satış yılı birlikte gruplandırılabilir:

SELECT urun_ad, YEAR(satis_tarihi) AS yil, SUM(miktar) AS toplam_satis
FROM satislar
GROUP BY urun_ad, YEAR(satis_tarihi);

Sonuç: SQL GROUP BY ve Aggregate Fonksiyonlar ile Etkili Analiz

SQL GROUP BY ve aggregate fonksiyonlar, veritabanı üzerinde güçlü ve hızlı analizler yapmanın en etkili yoludur. Özellikle büyük veri setlerinde, anlamlı raporlar ve özetler elde etmek için bu araçları etkin bir şekilde kullanmak gerekir. Kod örneklerindeki gibi GROUP BY ile birlikte COUNT, SUM, AVG, MAX ve MIN fonksiyonlarını kullanarak gelişmiş SQL sorguları yazabilirsiniz. Bu sayede hem performanslı hem de anlaşılır raporlar hazırlamak mümkün olur.