SQL Koşullu Toplama ve CASE Kullanımı

0 Yanıt 0 Görüntülenme
Puanlayanlar
Katılımcılar
Konuyu Açan #1
SQL’de Koşullu Toplama ve CASE Kullanımı: Temel Prensipler ve Uygulamalar

SQL sorgularında veriyi belirli koşullara göre toplamak veya farklı durumlara göre farklı işlemler yapmak genellikle sık karşılaşılan ihtiyaçlardandır. Bu noktada, COALESCE, SUM gibi fonksiyonların yanında, CASE ifadesi kritik bir rol oynar. Özellikle karmaşık raporlama ve analizlerde, koşullu toplamalar ve duruma göre farklı hesaplamalar yapmak, veri analistleri ve geliştiriciler için vazgeçilmez bir araçtır.

İlk olarak, temel toplamayı (SUM) düşünelim. Diyelim ki, satış verileriniz var ve sadece belirli bir ürün kategorisinin toplam satışını hesaplamak istiyorsunuz. Bu durumda, CASE ifadesi devreye girer. Örneğin:

KOD
123SELECT
    SUM(CASE WHEN kategori = 'Elektronik' THEN toplam ELSE 0 END) AS ElektronikToplam
FROM satışlar;


Burada, sadece 'Elektronik' kategorisindeki satışlar toplanır, diğerleri 0 kabul edilir. Bu, koşullu toplamayı sağlar ve veriyi segmentlere ayırmak veya belirli şartlara göre hesaplama yapmak için kullanılır.

İkinci önemli kullanım alanı, birden fazla koşulu tek sorguda değerlendirmektir. Mesela, satış durumlarına göre toplam tutar hesaplamak istiyorsunuz:

KOD
123456SELECT
    SUM(CASE
        WHEN durum = 'Tamamlandı' THEN tutar
        WHEN durum = 'İptal' THEN -tutar
        ELSE 0
    END) AS NetSatış


Burada, tamamlanan satışlar artı, iptal edilenler ise eksi olarak hesaplanır. Bu sayede, duruma göre toplamlar ve net tutar hesaplamaları kolayca yapılabilir.

Üçüncü ve önemli nokta ise, CASE ifadesinin, veriyi kategorize etmek veya yeni sütunlar oluşturmak için kullanılmasıdır. Örneğin, satışları 'Yüksek', 'Orta', 'Düşük' seviyelerine ayırmak:

KOD
123456789SELECT
    müşteri_id,
    toplam_tutar,
    CASE
        WHEN toplam_tutar >= 1000 THEN 'Yüksek'
        WHEN toplam_tutar >= 500 THEN 'Orta'
        ELSE 'Düşük'
    END AS satış_seviyesi
FROM müşteriler;


Bu tarz kullanımlar, raporlama ve veri segmentasyonu açısından oldukça faydalıdır. Ayrıca, CASE ifadesi, toplamaların yanı sıra, güncel duruma uygun farklı işlemleri de sağlar ve sorgu esnekliğini artırır.

Sonuç olarak, SQL’de koşullu toplamalar ve CASE kullanımı, veri analizi ve raporlama süreçlerini ciddi anlamda kolaylaştırır. Doğru ve verimli kullanıldığında, karmaşık sorgular bile basitleşir ve anlam kazanır. Bu tekniklerin detaylı ve efektif kullanımı, veri yönetimi ve analizinde büyük avantaj sağlar.

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 1, Üyeler: 1, Misafirler: 0)
Toplam: 1 (üyeler: 1, misafirler: 0)
0 alıntı seçildi