0Pricing
SQL Academy · Pelajaran

Mengelompokkan dan Memberi Label Data

Ubah nilai menjadi kategori.

Mengelompokkan dan Memberi Label Data adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.

Apa Itu Pengelompokan Kategori?

Pengelompokan kategori berarti mengelompokkan nilai mentah ke dalam kategori bernama—mengubah angka, tanggal, atau kode menjadi label yang mudah dipahami manusia.

Daripada menampilkan skor 87, Anda menampilkan "Good". Daripada menampilkan usia 14, Anda menampilkan "Teen". Ekspresi CASE adalah alat utama untuk melakukan ini.

Tabel Contoh: Pesanan

Kita akan menggunakan tabel orders di seluruh pelajaran ini. Setiap baris memiliki jumlah pesanan dan kode status.

Jalankan kueri di bawah ini untuk melihat data yang sedang kita gunakan.

SELECT id, customer, amount, status
FROM orders
ORDER BY id;

Memberi Label dengan CASE WHEN

Pola pengelompokan kategori yang paling sederhana memeriksa suatu kondisi dan menetapkan label. Blok CASE WHEN ... THEN ... ELSE ... END mengembalikan string baru untuk setiap baris.

Di sini, kita memberi label setiap pesanan sebagai 'Large' atau 'Small' berdasarkan jumlahnya.

SELECT id,
       amount,
       CASE
         WHEN amount >= 500 THEN 'Large'
         ELSE 'Small'
       END AS order_size
FROM orders;

Beberapa Kategori dengan Rangkaian WHEN

Anda dapat menambahkan klausa WHEN sebanyak yang diperlukan. SQL memeriksanya dari atas ke bawah dan berhenti pada kecocokan pertama.

Contoh ini membagi jumlah menjadi tiga tingkatan: Small, Medium, dan Large.

SELECT id,
       amount,
       CASE
         WHEN amount < 100  THEN 'Small'
         WHEN amount < 500  THEN 'Medium'
         ELSE 'Large'
       END AS order_tier
FROM orders;

Mengelompokkan Nilai Teks

Pengelompokan kategori tidak hanya berlaku untuk angka. Anda dapat mencocokkan nilai teks secara tepat dan menggantinya dengan label yang lebih mudah dipahami.

Di sini, kode status mentah 'P', 'S', dan 'C' diubah menjadi kata-kata yang mudah dibaca.

SELECT id,
       status,
       CASE status
         WHEN 'P' THEN 'Pending'
         WHEN 'S' THEN 'Shipped'
         WHEN 'C' THEN 'Cancelled'
         ELSE 'Unknown'
       END AS status_label
FROM orders;

Menggunakan Bentuk CASE Sederhana

Ketika Anda membandingkan satu kolom dengan beberapa nilai tetap, bentuk CASE sederhana (CASE column WHEN value ...) lebih singkat dan lebih mudah dibaca daripada mengulang nama kolom dalam setiap klausa WHEN.

Hasilnya identik dengan bentuk berbasis kondisi.

SELECT id,
       CASE status
         WHEN 'P' THEN 'Pending'
         WHEN 'S' THEN 'Shipped'
         WHEN 'C' THEN 'Cancelled'
         ELSE 'Unknown'
       END AS status_label
FROM orders;

Pengelompokan Kategori dalam GROUP BY

Setelah memiliki label kategori, Anda dapat mengelompokkannya untuk menghitung jumlah baris dalam setiap kategori. Bungkus seluruh ekspresi CASE di dalam GROUP BY.

Kueri ini menunjukkan jumlah pesanan yang termasuk Small, Medium, atau Large.

SELECT
  CASE
    WHEN amount < 100  THEN 'Small'
    WHEN amount < 500  THEN 'Medium'
    ELSE 'Large'
  END AS order_tier,
  COUNT(*) AS total_orders
FROM orders
GROUP BY
  CASE
    WHEN amount < 100  THEN 'Small'
    WHEN amount < 500  THEN 'Medium'
    ELSE 'Large'
  END;

Pengelompokan Kategori dengan Alias Subkueri

Mengulang blok CASE yang panjang dalam GROUP BY membuat kueri menjadi bertele-tele. Pendekatan yang lebih rapi adalah membungkus kueri utama dalam subkueri (atau CTE) sehingga Anda dapat langsung merujuk ke aliasnya.

SELECT order_tier, COUNT(*) AS total_orders
FROM (
  SELECT
    CASE
      WHEN amount < 100  THEN 'Small'
      WHEN amount < 500  THEN 'Medium'
      ELSE 'Large'
    END AS order_tier
  FROM orders
) AS bucketed
GROUP BY order_tier;

Kategori Numerik: Kelompok Usia

Pengelompokan usia adalah contoh penggunaan pengelompokan kategori yang klasik. Kueri di bawah ini menetapkan setiap pelanggan ke kelompok usia yang memiliki nama.

Perhatikan bahwa kondisinya dimulai dari yang terkecil hingga terbesar—SQL berhenti pada WHEN pertama yang bernilai true, jadi urutannya penting.

SELECT name,
       age,
       CASE
         WHEN age < 13 THEN 'Child'
         WHEN age < 18 THEN 'Teen'
         WHEN age < 65 THEN 'Adult'
         ELSE 'Senior'
       END AS age_group
FROM customers;

Memberi Label pada NULL dalam Kategori

Jika suatu nilai adalah NULL, tidak ada kondisi WHEN yang akan mencocokkannya, kecuali IS NULL. Tanpa pemeriksaan eksplisit, NULL akan diteruskan ke cabang ELSE.

Tambahkan klausa WHEN column IS NULL untuk memberikan label tersendiri bagi NULL.

SELECT id,
       amount,
       CASE
         WHEN amount IS NULL THEN 'No Data'
         WHEN amount < 100   THEN 'Small'
         WHEN amount < 500   THEN 'Medium'
         ELSE 'Large'
       END AS order_tier
FROM orders;

Pengelompokan Kategori dalam ORDER BY

Anda juga dapat menggunakan ekspresi CASE langsung di dalam ORDER BY untuk mengatur prioritas pengurutan tanpa menambahkan kolom baru.

Contoh di bawah ini selalu menampilkan pesanan Pending terlebih dahulu, kemudian Shipped, lalu Cancelled.

SELECT id, customer, status
FROM orders
ORDER BY
  CASE status
    WHEN 'P' THEN 1
    WHEN 'S' THEN 2
    WHEN 'C' THEN 3
    ELSE 4
  END;

Pemeriksaan Singkat

Uji pemahaman Anda tentang pengelompokan kategori dan pemberian label pada data dengan CASE.

Ringkasan Pelajaran

Kerja bagus! Berikut yang telah Anda pelajari tentang pengelompokan kategori dan pemberian label pada data:

  • Pengelompokan kategori mengubah nilai mentah menjadi kategori bernama menggunakan CASE WHEN.
  • Rangkaian klausa WHEN membuat beberapa kategori; SQL berhenti pada kecocokan pertama.
  • Bentuk CASE sederhana (CASE col WHEN val) ideal ketika membandingkan satu kolom dengan nilai tetap.
  • Anda dapat menggunakan ekspresi CASE dalam GROUP BY untuk menghitung jumlah baris di setiap kategori.
  • Selalu tangani NULL secara eksplisit dengan WHEN col IS NULL agar nilai tersebut mendapatkan label yang bermakna.
  • CASE juga dapat digunakan di dalam ORDER BY untuk menentukan prioritas pengurutan khusus.

Pengelompokan kategori membuat laporan jauh lebih mudah dibaca dengan mengganti kode dan angka mentah menjadi label yang jelas dan deskriptif.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mengelompokkan dan Memberi Label Data” gratis?

Ya — teks lengkap “Mengelompokkan dan Memberi Label Data” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mengelompokkan dan Memberi Label Data”?

Ubah nilai menjadi kategori. Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai SQL Academy?

Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Mengelompokkan dan Memberi Label Data” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?

Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Ekspresi CASE
  2. CASE Tersearched vs Sederhana
  3. Mengelompokkan dan Memberi Label Data
  4. CASE dalam ORDER BY dan Agregat
← Kembali ke SQL Academy