5 Contoh Soal SQL Query beserta Jawabannya untuk Pemula

Syaukha Ahmad Risyad

•

22 June 2023

•

43980

Image Banner

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!

Tabel yang Digunakan

Untuk 5 soal di artikel ini, kita bakal menggunakan 3 tabel berikut ini.

  1. Customers:

customer_id

customer_name

customer_city

1

Alpha Corp

New York

2

Beta Ltd

London

3

Gamma Inc

Sydney

4

Delta Corp

Madrid

  1. Salesman:

salesman_id

salesman_name

salesman_city

commission

1

Lauda

New York

0.15

2

Miomio

Los Angeles

0.12

3

Kamille

Houston

0.10

4

Agus

Chicago

0.14

  1. Orders:

order_id

order_date

amount

salesman_id

customer_id

1

2023-01-01

200.00

1

1

2

2023-01-02

250.00

2

1

3

2023-01-03

150.00

3

2

4

2023-01-04

300.00

4

3

5

2023-01-05

400.00

1

2

6

2023-01-06

350.00

2

3

7

2023-01-07

500.00

3

1

8

2023-01-08

200.00

4

3

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!

  1. Tentukan pelanggan yang tidak membuat pesanan!

  2. Tentukan total banyak pembelian yang dilakukan oleh setiap pelanggan!

  3. Tentukan pelanggan yang pernah melakukan pesanan dengan setidaknya dua salesmen!

  4. Tentukan nama pelanggan beserta total banyak pesanan yang dilakukan, urutkan berdasarkan banyak pesanannya!

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

customer_name

Delta Corp

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.

customer_name

total_sales

Delta Corp

NULL

Beta Ltd

550.00

Alpha Corp

950.00

Gamma Inc

850.00


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. 

customer_name

Alpha Corp

Beta Ltd

Gamma Inc

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.

customer_name

order_count

Alpha Corp

3

Gamma Inc

3

Beta Ltd

2

Delta Corp

0


Pertanyaan 5: Subquery

SELECT s.salesman_name, s.commission
FROM Salesman s
WHERE s.commission = (SELECT MAX(commission) FROM Salesman);

Untuk mengetahui komisi tertinggi, kita cukup menggunakan fungsi MAX() pada kolom ‘commission’. Meskipun begitu, untuk memperoleh nama salesman yang memiliki besar komisi tersebut, kita harus menggunakan klausa WHERE, dan menggunakan subquery untuk memanggil komisi tertinggi tadi.

Berikut adalah keluaran dari query di atas.

salesman_namecommision
Lauda0.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!

Share

Author Image

Syaukha Ahmad Risyad

Menulis artikel demi bisa membeli model kit.

dibimbing

PT. Dibimbing Digital Indonesia

Plaza CityView Lantai 2
Jl. Kemang Timur No.1, RT.14/RW.8, Pejaten Bar., Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12510

Subscribe Email

Get the best new products in your inbox, every day. Get the latest content first.

Copyright © 2024. PT Dibimbing Digital Indonesia. All Rights Reserved