Jenis dan Contoh Subquery SQL untuk Analisis Data Kamu

Syaukha Ahmad Risyad

17 June 2023

2564

Image Banner

Dalam perjalanan kamu menganalisis data menggunakan SQL, ada kalanya kamu menemukan kondisi yang mengharuskan kamu menggunakan subquery. Subquery adalah tools yang cukup powerful dalam kamu membuat query yang cukup kompleks. Meskipun begitu, mungkin kamu bertanya, “Apa itu subquery, dan seperti apa subquery itu?”

Pekerja-pekerja di bidang data, seperti data scientist dan data analyst, harus bisa mengambil informasi yang berguna dari suatu data. Meskipun penulisan query dasar cukup membantu, namun menguasai teknik menggunakan subquery akan semakin mempermudah pekerjaanmu di bidang data science. Subquery memungkinkan Sobat MinDi untuk break down masalah ke dalam bagian yang lebih kecil, sehingga semakin mempermudah pengambilan informasi dari data.

Oleh karena itu, di artikel ini MinDi mau memperkenalkan Sobat MinDi dengan apa itu subquery dalam SQL, beserta contoh-contoh subquery yang bisa kamu manfaatkan.


Apa itu Subquery?

Subquery adalah query yang ditumpuk pada query lain pada SQL. Dengan kata lain, kamu bisa menulis query baru di dalam query utama, dan dengan perintah dan klausa yang sama, seperti SELECT dan WHERE.

Subquery akan dieksekusi terlebih dahulu sebelum query utama, kemudian hasil keluaran dari subquery ini diteruskan ke query utama. Sehingga dapat dibilang bahwa query utama bersifat dependen terhadap subquery.

Terdapat beberapa jenis subquery yang umum digunakan pada SQL. Masing-masing jenis subquery ini memiliki fungsi yang berbeda-beda.

Scalar Subquery

Jenis subquery pertama dan yang paling umum dipakai adalah scalar subquery. Scalar subquery adalah subquery yang hasilnya memberikan satu nilai tunggal. Tepat satu baris dan tepat satu kolom.

Misalkan Sobat MinDi mempunyai tabel “Pegawai” yang berisi nama, posisi, gaji, dan departemen pegawai. Kamu ingin mencari nama pegawai dari yang memiliki gaji yang lebih tinggi dari gaji rata-rata.

Kamu dapat menulis query sebagai berikut.

SELECT nama
FROM Pegawai
WHERE gaji > (SELECT AVG(gaji) FROM Pegawai);

Pada query tersebut, (SELECT AVG(gaji) FROM Pegawai) adalah scalar subquery karena hanya memberikan nilai tunggal, misalkan ‘15000000’.

Scalar subquery biasa digunakan ketika kamu ingin membandingkan nilai atau mencari nilai maksimum atau minimum dari suatu tabel

Multiple Row Subquery

Multiple row subquery adalah jenis subquery yang memberikan lebih dari satu baris data. Data yang dipanggil oleh subquery ini bisa berupa satu kolom dengan beberapa baris, atau tabel dengan banyak baris dan banyak kolom.

Misalkan, menggunakan tabel “Pegawai” di atas, kamu juga memiliki tabel “Proyek” yang berisi nama proyek, project manager, dan departemen yang bertanggung jawab. Kamu ingin mencari nama-nama pegawai yang tidak masuk ke dalam departemen yang bekerja pada proyek tertentu.

Kamu dapat menulis query seperti berikut.

SELECT nama, departemen
FROM pegawai
WHERE departemen NOT IN (SELECT departemen FROM Proyek);

Subquery (SELECT departemen FROM Proyek) akan memberikan hasil berupa satu kolom penuh berisi nama-nama departemen dari tabel “Proyek”. Karena hasil tersebut lebih dar satu baris (row), maka subquery tersebut termasuk ke dalam jenis multiple row subquery.

Multiple row subquery biasa digunakan untuk membandingkan data atau nilai dari dua tabel.


Correlated Subquery

Correlated subquery adalah subquery yang perintahnya bergantung pada query utama.

Misalkan, menggunakan tabel yang sama seperti di atas, kamu ingin mencari tahu pegawai mana saja yang menjadi project manager beserta banyak proyek yang diembannya.

Kamu dapat menggunakan query berikut.

SELECT nama,
(SELECT COUNT (*) FROM Proyek WHERE Pegawai.nama = Proyek.project_manager) banyak_proyek
FROM Pegawai;

Di sini, informasi dari subquery (SELECT COUNT (*) FROM Proyek WHERE Pegawai.nama = Proyek.project_manager) bergantung pada informasi dari query utama. Ini yang disebut sebagai correlated subquery.

Nested Subquery 

Nested subquery adalah subquery yang, di dalam perintahnya, terdapat subquery lain. 

Misalkan, kembali menggunakan tabel yang sama, kamu ingin mencari nama pegawai yang berada di departemen yang project manager-nya bertugas sebagai manajer.

SELECT nama
FROM Pegawai
WHERE departemen IN (SELECT departemen FROM Proyek WHERE project_manager IN (SELECT * FROM Pegawai WHERE posisi = ‘Manajer’));

Dari query di atas, kita bisa melihat adanya subquery di dalam subquery. Keluaran dari subquery pertama bergantung pada keluaran dari subquery kedua, yaitu (SELECT * FROM Pegawai WHERE posisi = ‘Manager’). Inilah yang disebut sebagai nested subquery.


Jenis subquery ini memungkinkan kamu memanipulasi data di dalam subquery sebelum dibandingkan atau digunakan dalam query utama. Pada sistem database SQL, umumnya nested subquery tidak memiliki batasan banyak lapisan subquery yang bisa kamu tulis. Meskipun begitu, kamu tetap perlu memperhatikan keterbacaan dari query kamu, agar kamu ataupun tim kamu mudah memahami tujuan dari query yang kamu tulis.


Pada akhirnya, subquery adalah tools yang berguna untuk kamu menganalisis data menggunakan SQL. Dengan menguasai subquery, kamu bisa melakukan analisis data yang lebih kompleks dan memperoleh informasi yang lebih spesifik.

Kalau Sobat MinDi tertarik untuk menempuh karir di data science, Pemahaman SQL, termasuk subquery, tentulah menjadi keterampilan yang penting.

Untuk mempelajari SQL lebih lanjut, kamu bisa ikut bergabung dengan Bootcamp Data Science yang diadakan oleh Dibimbing.id, nih!

Selain SQL, kamu juga bisa belajar tools lain yang biasa digunakan professional, seperti Python dan Tableau. Sobat MinDi juga bakal bertemu dengan ahli-ahli yang sudah berpengalaman di bidang data science.

Ayo daftar sekarang dan mulai karir kamu di data science!

bootcamp data-science

Share

Author Image

Syaukha Ahmad Risyad

Menulis artikel demi bisa membeli model kit.

Artikel Terkait

5 Contoh Soal SQL Query beserta Jawabannya untuk Pemula

Data Science

5 Contoh Soal SQL Query beserta Jawabannya untuk Pemula

Lihat dan ikut jawab soal-soal SQL query ini untuk melatih kemampuan data science kamu! Ayo jadi da...

Image Author

Syaukha Ahmad Risyad

22 June 2023

Konsep Big Data: Pengertian, Jenis, Hingga Manfaat

Data Science

Konsep Big Data: Pengertian, Jenis, Hingga Manfaat

Big data adalah fondasi penting dalam data science. Pelajari konsep big data berikut ini, dari peng...

Image Author

Syaukha Ahmad Risyad

04 August 2023

14 Tools Data Science Buat Kamu yang Mau Jadi Profesional

Data Science

14 Tools Data Science Buat Kamu yang Mau Jadi Profesional

Menguasai data science artinya menguasai tools yang biasa dipakai. Makanya, cek 7 tools data scienc...

Image Author

Syaukha Ahmad Risyad

16 August 2023

10 Rekomendasi Laptop Terbaik untuk Data Analyst 2024

Data Science

10 Rekomendasi Laptop Terbaik untuk Data Analyst 2024

Kenali rekomendasi laptop untuk Data Analyst berikut ini. Temukan laptop yang tepat untuk kebutuhan...

Image Author

Syaukha Ahmad Risyad

08 September 2023

Jenjang Karir Data Analyst: Gaji hingga Skill yang Dimiliki

Data Science

Jenjang Karir Data Analyst: Gaji hingga Skill yang Dimiliki

Tertarik dengan profesi data analyst? Yuk simak jenjang karir data analyst hingga skill yang dibutu...

Image Author

Muthiatur Rohmah

04 April 2024

Analisis Regresi: Pengertian, Rumus, Fungsi & Manfaatnya

Data Science

Analisis Regresi: Pengertian, Rumus, Fungsi & Manfaatnya

Analisis regresi adalah metode penelitian kuantitatif untuk menentukan hubungan sebab akibat antar ...

Image Author

Muthiatur Rohmah

04 April 2024