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
-
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.