5 Contoh Soal SQL Query beserta Jawabannya untuk Pemula
Syaukha Ahmad Risyad
•
22 June 2023
•
98027
Sobat MinDi sekarang mungkin sudah belajar tentang query beserta fungsi-fungsinya di SQL, dan saat ini ingin terjun langsung ke dunia data science. Nah, sebelum itu, Sobat MinDi perlu banget, nih, buat mencoba mengerjakan beberapa contoh soal SQL query sebagai bentuk latihan!
Kalau Sobat MinDi sudah mendalami query di SQL, kamu mungkin sudah merasa siap untuk mengerjakan tugas-tugas sebagai data analyst atau data scientist. Meskipun begitu, pekerjaan di bidang data science cukup spesifik dan lebih kompleks di lapangan. Permintaan pengolahan data seringkali menuntut kamu untuk menggabungkan keterampilan-keterampilan kamu terkait query di SQL.
Dalam artikel ini, MinDi bakal memberikan kamu 5 contoh soal SQL query beserta jawabannya. Soal latihan ini bisa kamu coba kerjakan menggunakan relational database management system (RDBMS) apapun, seperti PostgreSQL. Kamu juga bisa mengerjakan soal-soal ini secara mandiri sebelum kamu melihat kunci jawabannya. Yuk, kita kerjakan! Kamu juga bisa mengikuti kelas online SQL yang cocok untuk pemula, bakal diajarkan oleh professional yang akan membedah tentang database dan SQL melalui video online. Selain itu akan ada simulasi pembuatan project juga, lho! Agar kamu bisa lebih paham dan mempraktekannya secara langsung!
Tabel yang Digunakan
Untuk 5 soal di artikel ini, kita bakal menggunakan 3 tabel berikut ini.
Customers:
Salesman:
Orders:
Kamu dapat menyalin tabel ini di spreadsheet kemudian di-import di perangkat SQL kamu, atau kamu juga dapat membuat database dan tabel secara langsung di SQL.
Soal SQL Query
Berikut adalah pertanyaan-pertanyaan yang dapat kamu ulik secara mandiri. Untuk menjawabnya, kamu perlu menuliskan query kamu sendiri, ya!
Tentukan pelanggan yang tidak membuat pesanan!
Tentukan total banyak pembelian yang dilakukan oleh setiap pelanggan!
Tentukan pelanggan yang pernah melakukan pesanan dengan setidaknya dua salesmen!
Tentukan nama pelanggan beserta total banyak pesanan yang dilakukan, urutkan berdasarkan banyak pesanannya!
Tentukan salesmen dengan komisi tertinggi, dan tunjukkan komisinya
Kunci Jawaban SQL Query
Pertanyaan 1: JOIN
SELECT c.customer_name
FROM Customer c
LEFT JOIN Orders o ON c.customer_id = o.customer_id
WHERE o.order_id IS NULL;
Untuk memperoleh pelanggan yang tidak melakukan pesanan, kita perlu menggunakan perintah kondisi WHERE untuk menentukan nilai pesanan yang kosong atau NULL. Karena kita ingin memanggil nama pelanggannya, maka kita perlu menggabungkan tabel ‘Customer’ dengan ‘Orders’ menggunakan LEFT JOIN pada kolom ‘customer_id’.
Dari keluaran query yang kita peroleh, kita temukan bahwa Delta Corp adalah pelanggan yang tidak melakukan pesanan.
Pertanyaan 2: AGGREGATE
SELECT c.customer_name, SUM(o.amount) AS total_sales
FROM Customer c
LEFT JOIN Orders o ON c.customer_id = o.customer_id
GROUP BY c.customer_name;
Agar kita bisa mendapatkan informasi total banyak pembelian, kita perlu melakukan perintah agregat SUM() terhadap kolom ‘amount’. Seperti pada pertanyaan nomor 1, kita perlu menggabungkan tabel ‘Customer’ dengan ‘Orders’ pada kolom ‘customer_id’. Selanjutnya kita perlu mengelompokkan jumlah pesanan berdasarkan nama pelanggan.
Keluaran dari query di atas adalah seperti berikut.Pertanyaan 3: HAVING
SELECT c.customer_name
FROM Customer c
JOIN Orders o ON c.customer_id = o.customer_id
GROUP BY c.customer_name
HAVING COUNT(DISTINCT o.salesman_id) >= 2;
Untuk menentukan pesanan yang dilakukan dengan minimal dua salesman, kita dapat melakukan COUNT(DISTINCT) terhadap kolom ‘salesman_id’. Selanjutnya kita melakukan JOIN antara tabel ‘Customer’ dengan ‘Orders’, dan menggunakan HAVING pada COUNT(DISTINCT) tadi, dengan kondisi lebih besar sama dengan 2.
Kita akan dapatkan bahwa Alpha Corp, Beta Ltd, dan Gamma Inc sama-sama melakukan pesanan dengan setidaknya dua salesman.
Pertanyaan 4: ORDER BY
SELECT c.customer_name, COUNT(o.order_id) AS order_count
FROM Customer c
LEFT JOIN Orders o ON c.customer_id = o.customer_id
GROUP BY c.customer_name
ORDER BY order_count DESC;
Kita ingin mengurutkan pelanggan berdasarkan banyak pesanan. Artinya, kita perlu menggunakan klausa ORDER BY terhadap banyak pesanan setiap pelanggan. Banyak pesanan dapat kita lakukan dengan menggunakan perintah COUNT() terhadap kolom ‘order_id’.
Tampilan dari hasil query adalah seperti berikut. Pada kasus ini, kita mengurutkan banyak pesanan dari terbesar hingga terkecil.
Pertanyaan 5: Subquery
SELECT s.salesman_name, s.commission
FROM Salesman s
WHERE s.commission = (SELECT MAX(commission) FROM Salesman);
Berikut adalah keluaran dari query di atas.
salesman_name | commision |
Lauda | 0.15 |
Nah, bagaimana, Sobat MinDi? Setelah mengerjakan contoh-contoh soal di atas, apakah Sobat MinDi jadi semakin percaya diri dengan kemampuan query di SQL kamu?
Masih banyak lagi nih yang masih perlu kamu pelajari buat bisa bekerja di bidang data science, tapi jangan khawatir!
Sobat MinDi bisa belajar lebih dalam lagi tentang SQL, khususnya PostgreSQL di Bootcamp Data Science yang diadakan oleh Dibimbing.id!
Di bootcamp ini, kamu juga bakal belajar tools lain yang digunakan oleh profesional data science, seperti Python dan Tableau. Sepanjang periode belajar kamu, Sobat MinDi bakal dilatih dan dibimbing oleh ahli-ahli data science yang sudah berpengalaman!
Makanya, yuk bergabung di Bootcamp Data Science Dibimbing.id sekarang, dan raih cita-cita kamu di data science!Tags