Friday, February 20, 2026

Menjadi Data Analyst dari Nol (Part 25)

    

 


CASE WHEN Advanced pada SQL: Nested, Multiple Condition, dan Studi Kasus Dunia Kerja

Kalau di Part 1 kita sudah membahas dasar CASE WHEN, sekarang kita masuk level berikutnya.

Di artikel ini kita akan bahas:

  • Nested CASE WHEN

  • Multiple condition (AND / OR)

  • CASE WHEN dengan beberapa kolom

  • Studi kasus dunia kerja (real business case)

  • Tips optimasi performa

Artikel ini cocok untuk kamu yang ingin naik level dari SQL dasar ke SQL intermediate–advanced.

1️⃣ Nested CASE WHEN (CASE di dalam CASE)

Nested CASE WHEN digunakan ketika kondisi bercabang lebih kompleks.

Contoh Studi Kasus

Misalnya kita ingin mengkategorikan customer berdasarkan:

  • total_sales

  • status membership

Tabel:

customer_nametotal_salesmembership
Andi7000000Gold
Budi7000000Silver
Sari2000000Gold

Query:

SELECT customer_name, total_sales, membership, CASE WHEN total_sales >= 5000000 THEN CASE WHEN membership = 'Gold' THEN 'High Priority VIP' ELSE 'High Value Regular' END WHEN total_sales >= 2000000 THEN 'Medium Value' ELSE 'Low Value' END AS customer_segment FROM sales;

📌 Digunakan untuk segmentasi bertingkat.

2️⃣ CASE WHEN dengan Multiple Condition (AND / OR)

Ini sering dipakai dalam real reporting.

Contoh: Menentukan Bonus Sales

Kriteria:

  • total_sales ≥ 10 juta

  • jumlah_transaksi ≥ 50

SELECT sales_name, total_sales, total_transaction, CASE WHEN total_sales >= 10000000 AND total_transaction >= 50 THEN 'Bonus Eligible' ELSE 'No Bonus' END AS bonus_status FROM sales_performance;

📌 Sangat umum dipakai dalam KPI dashboard.

3️⃣ CASE WHEN dengan Beberapa Kolom

Kadang kita perlu evaluasi lebih dari satu kolom sekaligus.

Contoh: Status Pembayaran

| invoice_id | due_date | payment_date |

SELECT invoice_id, CASE WHEN payment_date IS NULL THEN 'Unpaid' WHEN payment_date <= due_date THEN 'On Time' ELSE 'Late Payment' END AS payment_status FROM invoices;

📌 Ini sering dipakai di sistem accounting dan dashboard finance.

4️⃣ Real Business Case: Segmentasi Customer untuk Dashboard

Sekarang kita masuk studi kasus yang realistis.

Misalnya kamu ingin membuat dashboard di:

  • Microsoft Power BI

  • Looker Studio

Dan kamu ingin membuat segmentasi:

  • Platinum → ≥ 20 juta

  • Gold → ≥ 10 juta

  • Silver → ≥ 5 juta

  • Bronze → < 5 juta

Query:

SELECT customer_id, SUM(total_sales) AS total_revenue, CASE WHEN SUM(total_sales) >= 20000000 THEN 'Platinum' WHEN SUM(total_sales) >= 10000000 THEN 'Gold' WHEN SUM(total_sales) >= 5000000 THEN 'Silver' ELSE 'Bronze' END AS customer_tier FROM sales GROUP BY customer_id;

🔥 Ini yang biasanya dipakai sebelum data masuk ke dashboard.

5️⃣ Tips Optimasi CASE WHEN (Advanced Level)

✅ 1. Hindari Perhitungan Berulang

Jangan ulang SUM(total_sales) berkali-kali.
Lebih baik gunakan subquery atau CTE.

✅ 2. Gunakan CTE untuk Query Kompleks

WITH revenue_summary AS ( SELECT customer_id, SUM(total_sales) AS total_revenue FROM sales GROUP BY customer_id ) SELECT customer_id, total_revenue, CASE WHEN total_revenue >= 20000000 THEN 'Platinum' WHEN total_revenue >= 10000000 THEN 'Gold' WHEN total_revenue >= 5000000 THEN 'Silver' ELSE 'Bronze' END AS tier FROM revenue_summary;

📌 Ini jauh lebih clean dan scalable.

6️⃣ Kesalahan Umum yang Harus Dihindari

❌ Urutan kondisi salah
❌ Tidak menggunakan ELSE
❌ Logika tumpang tindih
❌ Query terlalu panjang tanpa CTE

Kesimpulan

CASE WHEN Advanced pada SQL memungkinkan kamu untuk:

  • Membuat segmentasi kompleks

  • Mengolah data sebelum masuk dashboard

  • Membuat KPI logic langsung dari database

  • Mengurangi beban transformasi di BI tools

Kalau kamu ingin naik level sebagai Data Analyst, menguasai Nested CASE dan Multiple Condition adalah skill wajib.


FAQ Section 

FAQ: CASE WHEN Advanced SQL

1. Apa itu Nested CASE WHEN?

Nested CASE WHEN adalah penggunaan CASE di dalam CASE untuk menangani logika kondisi bertingkat.

2. Kapan menggunakan AND atau OR dalam CASE WHEN?

Digunakan ketika kondisi evaluasi melibatkan lebih dari satu kriteria, seperti target penjualan dan jumlah transaksi.

3. Apakah CASE WHEN bisa digunakan dengan GROUP BY?

Ya, sangat umum digunakan bersama GROUP BY untuk membuat segmentasi berdasarkan hasil agregasi.

4. Apakah CASE WHEN mempengaruhi performa query?

Jika terlalu kompleks atau berulang tanpa optimasi, bisa memperlambat query. Gunakan CTE atau subquery untuk performa lebih baik.

NEXT kita lanjut:

  • Artikel Part 3: CASE WHEN vs COALESCE vs NULLIF

  • Artikel SQL untuk KPI Dashboard

  • Artikel SQL untuk Interview Data Analyst

  • Atau kita bikin satu seri khusus “SQL untuk Real Corporate Case”

Bagikan

Jangan lewatkan

Menjadi Data Analyst dari Nol (Part 25)
4/ 5
Oleh

Subscribe via email

Suka dengan artikel di atas? Tambahkan email Anda untuk berlangganan.