Lewati ke konten utama
SQL Fundamentals

Lesson 01 / Advanced Querying

Subquery

Menggunakan hasil query sebagai input query lain.

EST. 18 MIN

Subquery

Subquery adalah query di dalam query lain. Gunakan ketika hasil sementara membantu membentuk kondisi atau daftar nilai.

Tujuan belajar

Setelah lesson ini, kamu dapat memakai subquery satu nilai untuk perbandingan dan subquery banyak baris dengan IN atau EXISTS.

SELECT product_name, price
FROM products
WHERE price > (SELECT AVG(price) FROM products);

Berikan perhatian pada jumlah baris yang dihasilkan subquery agar operator perbandingan yang dipilih sesuai.

Satu nilai atau banyak nilai

Subquery satu nilai dapat dipakai dengan =, >, atau <. Jika subquery menghasilkan banyak baris, gunakan IN atau EXISTS.

SELECT customer_name
FROM customers
WHERE customer_id IN (
    SELECT customer_id
    FROM orders
    WHERE status = 'completed'
);

Contoh ini memilih pelanggan yang memiliki setidaknya satu pesanan selesai. Gunakan subquery ketika ia membuat pertanyaan lebih mudah dipahami; untuk hasil sementara yang panjang atau dipakai berulang, CTE biasanya lebih rapi.

Coba sendiri

Tampilkan produk dengan harga di atas rata-rata harga produk. Periksa dulu apakah subquery rata-rata hanya menghasilkan satu baris.

Jebakan umum

price > (subquery) gagal bila subquery menghasilkan banyak nilai. Gunakan IN, EXISTS, atau agregasi sesuai bentuk hasil yang dibutuhkan.

Practice

Latihan

01 EXERCISE

  1. EXERCISE 01 / GUIDED_PRACTICE

    Temukan produk di atas rata-rata

    Tampilkan produk yang harganya lebih tinggi daripada rata-rata seluruh produk. Periksa bahwa subquery rata-rata menghasilkan satu nilai.

    FOCUS
    Scalar subquery
    DATASET
    E-Commerce
    ESTIMATED MINUTES
    7

    Practice workspace

    Tulis dan jalankan query

    Menyiapkan SQL runtime...

    Dataset: E-Commerce. Query berjalan lokal di browser.

    Hasil query

    0 ROWS

    Jalankan query untuk menampilkan hasil di sini.

    Masuk untuk menandai latihan selesai.