Satırlardan tek değere
Toplama (aggregate) fonksiyonları çok sayıda satırı alıp tek bir değer üretir.
| Fonksiyon | Ne yapar? |
|---|---|
COUNT(*) | Satır sayısı |
COUNT(sutun) | O sütunda NULL olmayan değer sayısı |
COUNT(DISTINCT sutun) | Farklı değer sayısı |
SUM, AVG | Toplam, ortalama (NULL'ları yok sayar) |
MIN, MAX | En küçük, en büyük (metin ve tarihte de çalışır) |
SELECT COUNT(*) AS musteri_sayisi,
COUNT(email) AS emaili_olan,
COUNT(DISTINCT city) AS sehir_sayisi
FROM customers;
SELECT MIN(price) AS en_ucuz,
MAX(price) AS en_pahali,
ROUND(AVG(price), 2) AS ortalama
FROM products;
WHERE ile birlikte: önce satırlar süzülür, sonra özetlenir.
SELECT COUNT(*) AS iptal_sayisi FROM orders WHERE status = 'cancelled';
AVG ve NULLAVG, NULL değerleri paydaya katmaz. NULL'ları 0 saymak istiyorsan
AVG(COALESCE(x, 0)) kullanmalısın. Bu fark raporlarda büyük sapmalara yol açabilir.Derinleş: toplama fonksiyonlarını birlikte kullanmak
Tek satırda hem sayıyı hem toplamı hem ortalamayı görmek, verinin genel resmini hızla verir. Lezzet Kurye'nin teslim siparişleri:
SELECT COUNT(*) AS siparis,
SUM(tip) AS toplam_bahsis,
ROUND(AVG(tip), 2) AS ort_bahsis,
MIN(placed_at) AS ilk,
MAX(placed_at) AS son
FROM lk_orders
WHERE status = 'teslim';
- Hiç satır yoksa
COUNT0,SUMveAVGNULL döner. - Tam sayı sütunlarında
AVGbazı SQL türlerinde tam sayı döndürür (SQL Server);AVG(1.0 * x)güvenlidir. SUM(DISTINCT x)tekrar eden değerleri bir kez toplar; nadiren istenen şeydir.