Menu
CoddyTech

Subkueri Bagian 2

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

Ada tiga jenis utama subkueri:

  1. Subkueri skalar - Mengembalikan satu nilai (satu baris, satu kolom)
  2. Subkueri baris - Mengembalikan satu baris dengan beberapa kolom
  3. Subkueri tabel - Mengembalikan beberapa baris dan kolom

Sebagai contoh, berikut beberapa penggunaan untuk setiap jenis 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
);

Subkueri 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'
);

Subkueri 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 melakukan 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. Kembalikan category dan jumlah kuantitas dengan nama total_quantity.

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

Langkah-langkah penyelesaian:

  1. Pertama, tulis subkueri yang menghitung rata-rata semua kuantitas di toko: SELECT AVG(quantity) FROM shop
  2. Lalu, jumlahkan kuantitas untuk setiap kategori dan bandingkan dengan subkueri 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