Subkueri Bagian 2
Termasuk bagian Dasar-Dasar dalam perjalanan SQL di Coddy. Pelajaran 39 dari 72.
Ada tiga jenis utama subquery:
- Subquery Skalar - Mengembalikan satu nilai (satu baris, satu kolom)
- Subquery Baris - Mengembalikan satu baris dengan beberapa kolom
- 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
Tantangan
MudahTabel 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:
- Pertama, tulis subquery yang menghitung rata-rata semua kuantitas di toko:
SELECT AVG(quantity) FROM shop - Kemudian, jumlahkan kuantitas untuk setiap kategori dan bandingkan dengan subquery ini menggunakan kata kunci
HAVING
Coba sendiri
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Kata Kunci Lainnya
Kata kunci INKata kunci BETWEENKata kunci LIKEKata kunci ASRangkuman: Model Ponsel2Kondisi
Dasar KondisiKata Kunci ANDKata Kunci ORKata Kunci NOTMenggabungkan Beberapa KondisiTanda KurungNilai Boolean3Format Pengembalian Khusus
Nilai nullUrutkan Hasil Bagian 1Urutkan Hasil Bagian 2Ulasan: Perusahaan Keamanan SiberBatasi Jumlah RecordUlasan: Pabrik Kendaraan6Tantangan Pengantar
Ulasan: Pemilihan ParlemenUlasan: Polisi Menangkap Pelaku KejahatanUlasan: Wadah Minuman BarUlasan: Insinyur Membuat Kolom BaruLatihan sendiri: Playground SQL