Menu
CoddyTech

SUM dengan CASE

Termasuk bagian Lebih dari Dasar-Dasar dalam perjalanan SQL di Coddy. Pelajaran 13 dari 27.

Ide yang sama juga berlaku untuk SUM, dan cara ini bahkan lebih fleksibel. CASE dapat mengembalikan 1 untuk baris yang cocok dan 0 untuk baris lainnya, atau dapat mengembalikan nilai numerik apa pun untuk memberi bobot yang berbeda pada setiap baris.

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) dan COUNT(CASE … THEN 1 END) memberikan hasil yang sama untuk penghitungan. Pilih gaya yang disukai timmu.

challenge icon

Tantangan

Mudah

Tabel dan kolom yang tersedia:

  • transactions: id, category, type, amount

type adalah 'sale' atau 'refund'. Untuk setiap category, tampilkan:

  • category
  • net_revenue: jumlah nilai penjualan dikurangi jumlah nilai pengembalian dana

Hitung net_revenue dalam satu ekspresi SUM(CASE …), dengan nilai pengembalian dana dihitung sebagai angka negatif. Urutkan berdasarkan net_revenue secara menurun.

Coba sendiri

SELECT category,
       -- satu SUM(CASE ...) dengan pengembalian dana dihitung sebagai nilai negatif
FROM transactions
GROUP BY category
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Lebih dari Dasar-Dasar

Latihan sendiri: Playground SQL