Menu
Coddy logo textTech

CASE ile SUM

Coddy'nin SQL Journey'sinin Temellerin Ötesi bölümünün bir parçası. Ders 13 / 27.

Aynı fikir SUM ile de çalışır: üstelik çok daha esnektir. CASE, eşleşen satırlar için 1, diğer her şey için 0 döndürebilir veya satırları farklı şekilde ağırlıklandırmak için herhangi bir sayısal değer döndürebilir.

SELECT
    SUM(CASE WHEN status = 'active' THEN 1 ELSE 0 END) AS active_count,
    SUM(CASE WHEN plan = 'pro' THEN amount ELSE 0 END) AS pro_revenue
FROM users

SUM(CASE … THEN 1 ELSE 0 END) ve COUNT(CASE … THEN 1 END) sayım için aynı sonucu verir; ekibinizin tercih ettiği stili seçin.

challenge icon

Görev

Kolay

Kullanılabilir tablolar ve sütunlar:

  • transactions: id, category, type, amount

type, 'sale' veya 'refund' değerlerinden biridir. Her category için şunları döndürün:

  • category
  • net_revenue: satış tutarları toplamı eksi iade tutarları toplamı

net_revenue değerini, iadelerin tutarlarının negatif sayı olarak katkıda bulunduğu tek bir SUM(CASE …) ifadesiyle hesaplayın. net_revenue değerine göre azalan sırada sıralayın.

Kendin dene

SELECT category,
       -- iadelerin negatif sayıldığı bir SUM(CASE ...)
FROM transactions
GROUP BY category
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temellerin Ötesi bölümündeki tüm dersler

Kendi başına pratik yap: SQL playground