Menu
CoddyTech

Subkueri Bagian 2

Termasuk bagian Dasar-Dasar dalam perjalanan SQL di Coddy. Pelajaran 39 dari 72.

Ada tiga jenis utama subquery:

  1. Subquery Skalar - Mengembalikan satu nilai (satu baris, satu kolom)
  2. Subquery Baris - Mengembalikan satu baris dengan beberapa kolom
  3. Subquery Tabel - Mengembalikan beberapa baris dan kolom

Contohnya, berikut beberapa kasus penggunaan untuk setiap tipe subquery:

Subquery skalar: Temukan karyawan yang gajinya lebih tinggi daripada gaji rata-rata:

SELECT name, salary
FROM employees
WHERE salary > (
    SELECT AVG(salary)
    FROM employees
);

Subquery Baris: Temukan karyawan yang memiliki departemen dan gaji yang sama dengan Alice

SELECT name
FROM employees
WHERE (department, salary) = (
    SELECT department, salary
    FROM employees
    WHERE name = 'Alice'
);

Subquery Tabel, Tampilkan departemen dan jumlah karyawannya

SELECT department, count
FROM (
    SELECT department, COUNT(*) as count
    FROM employees
    GROUP BY department
) as dept_counts;

Perhatikan kasus penggunaannya:

  • Skalar: Perbandingan sederhana (>, <, =)
  • Saat kamu perlu mencocokkan beberapa kolom
  • Saat kamu perlu menjalankan query dari kumpulan hasil
challenge icon

Tantangan

Mudah

Tabel dan kolom yang tersedia:

  • shop: price, quantity, category, list_date

Temukan kategori yang total kuantitasnya lebih besar daripada rata-rata semua kuantitas di toko. Tampilkan category dan jumlah kuantitas dengan nama total_quantity.

Penting: Kamu harus menggunakan subquery di dalam klausa HAVING untuk menghitung rata-rata. Jangan gunakan nilai yang ditetapkan secara langsung atau query terpisah: subquery harus menghitung AVG(quantity) langsung dari tabel shop di dalam HAVING.

Langkah-langkah penyelesaian:

  1. Pertama, tulis subquery yang menghitung rata-rata semua kuantitas di toko: SELECT AVG(quantity) FROM shop
  2. Kemudian, jumlahkan kuantitas untuk setiap kategori dan bandingkan dengan subquery ini menggunakan kata kunci HAVING

Coba sendiri

quiz iconUji dirimu

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

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Playground SQL