Kalau kamu buka lowongan data analyst, hampir pasti ada satu skill yang selalu muncul: SQL. Alasannya simpel, sebagian besar data perusahaan disimpan di database, dan SQL adalah bahasa untuk "ngobrol" dengan database tersebut.
Kabar baiknya, kamu nggak perlu menguasai semua fitur SQL untuk mulai produktif. Ada tujuh query dasar yang dipakai hampir setiap hari oleh data analyst. Kalau tujuh ini sudah lancar, kamu sudah bisa menjawab banyak pertanyaan bisnis. Yuk, kita bahas satu per satu dengan contoh nyata.
TL;DR
- Tujuh query inti: SELECT, WHERE, ORDER BY, GROUP BY dengan agregat, HAVING, JOIN, dan CASE WHEN.
- Pahami urutan logika eksekusi SQL supaya kamu tahu kenapa WHERE dan HAVING berbeda.
- Cara tercepat jago SQL adalah latihan menjawab pertanyaan bisnis nyata, bukan menghafal sintaks.
Contoh Data yang Kita Pakai
Supaya lebih mudah dipahami, kita pakai dua tabel sederhana.
Tabel penjualan:
| id | tanggal | id_produk | kota | qty | total |
|---|---|---|---|---|---|
| 1 | 2024-01-05 | 101 | Jakarta | 2 | 300000 |
| 2 | 2024-01-06 | 102 | Bandung | 1 | 450000 |
| 3 | 2024-01-06 | 101 | Surabaya | 3 | 450000 |
| 4 | 2024-01-07 | 103 | Jakarta | 5 | 250000 |
| 5 | 2024-01-08 | 102 | Jakarta | 2 | 900000 |
Tabel produk:
| id_produk | nama_produk | kategori |
|---|---|---|
| 101 | Kaos Polos | Fashion |
| 102 | Sepatu Lari | Olahraga |
| 103 | Botol Minum | Aksesoris |
Mengambil, Menyaring, dan Mengurutkan Data
1. SELECT: Mengambil Kolom yang Dibutuhkan
SELECT adalah query paling dasar. Fungsinya untuk memilih kolom apa saja yang mau ditampilkan.
SELECT tanggal, kota, total
FROM penjualan;
Kamu juga bisa memakai SELECT * untuk menampilkan semua kolom, tapi di dunia kerja kebiasaan ini sebaiknya dihindari, terutama di tabel besar. Ambil hanya kolom yang kamu butuhkan supaya query lebih cepat dan hasilnya lebih rapi.
Tips: pakai alias dengan AS biar nama kolom lebih jelas.
SELECT tanggal, total AS nilai_transaksi
FROM penjualan;
2. WHERE: Menyaring Baris
WHERE dipakai untuk memfilter baris berdasarkan kondisi tertentu.
SELECT *
FROM penjualan
WHERE kota = 'Jakarta'
AND total >= 300000;
Beberapa operator yang sering dipakai bareng WHERE:
=,<>,>,<,>=,<=untuk perbandinganIN ('Jakarta', 'Bandung')untuk mencocokkan beberapa nilai sekaligusBETWEEN '2024-01-01' AND '2024-01-31'untuk rentang nilai atau tanggalLIKE 'Ja%'untuk mencari pola teksIS NULLuntuk mencari data kosong
Kasus kerja: Tim marketing minta daftar transaksi di Jakarta dan Bandung selama bulan Januari. Gabungkan IN dan BETWEEN, beres.
3. ORDER BY: Mengurutkan Hasil
ORDER BY mengurutkan hasil query, secara default dari kecil ke besar (ASC). Tambahkan DESC untuk urutan sebaliknya.
SELECT id, kota, total
FROM penjualan
ORDER BY total DESC
LIMIT 3;
Query di atas menampilkan tiga transaksi dengan nilai terbesar. Kombinasi ORDER BY dan LIMIT ini auto kepakai setiap kali ada pertanyaan "top 5" atau "top 10". Catatan kecil: di SQL Server, sintaksnya memakai SELECT TOP 3 alih-alih LIMIT.
4. GROUP BY dan Fungsi Agregat
Inilah bagian yang bikin SQL terasa powerful. GROUP BY mengelompokkan baris, lalu fungsi agregat menghitung nilai untuk tiap kelompok.
Fungsi agregat yang paling umum:
| Fungsi | Kegunaan |
|---|---|
COUNT() |
Menghitung jumlah baris |
SUM() |
Menjumlahkan nilai |
AVG() |
Menghitung rata-rata |
MIN() / MAX() |
Mencari nilai terkecil dan terbesar |
SELECT kota,
COUNT(*) AS jumlah_transaksi,
SUM(total) AS total_penjualan,
AVG(total) AS rata_rata
FROM penjualan
GROUP BY kota
ORDER BY total_penjualan DESC;
Hasilnya, kamu langsung dapat ringkasan penjualan per kota. Aturan pentingnya: setiap kolom di SELECT yang bukan fungsi agregat harus ikut dicantumkan di GROUP BY.
5. HAVING: Memfilter Hasil Agregasi
Banyak pemula bingung bedanya WHERE dan HAVING. Gampangnya begini:
WHEREmemfilter baris sebelum dikelompokkan.HAVINGmemfilter kelompok setelah diagregasi.
SELECT kota,
SUM(total) AS total_penjualan
FROM penjualan
WHERE tanggal >= '2024-01-01'
GROUP BY kota
HAVING SUM(total) > 500000;
Query ini hanya menampilkan kota dengan total penjualan di atas 500 ribu. Kamu nggak bisa menaruh SUM(total) > 500000 di WHERE, karena saat WHERE dijalankan, data belum dijumlahkan.
Urutan Logika Eksekusi SQL
Supaya makin paham, ini urutan SQL memproses query secara logis:
FROMdanJOINWHEREGROUP BYHAVINGSELECTORDER BYLIMIT
Urutan ini juga menjelaskan kenapa alias dari SELECT biasanya belum bisa dipakai di WHERE.
6. JOIN: Menggabungkan Tabel
Di tabel penjualan, kita cuma punya id_produk. Kalau mau tahu nama produk dan kategorinya, kita perlu menggabungkannya dengan tabel produk memakai JOIN.
SELECT p.tanggal,
pr.nama_produk,
pr.kategori,
p.total
FROM penjualan AS p
INNER JOIN produk AS pr
ON p.id_produk = pr.id_produk;
Jenis JOIN yang paling sering dipakai:
INNER JOINhanya menampilkan baris yang cocok di kedua tabel.LEFT JOINmenampilkan semua baris dari tabel kiri, meskipun tidak ada pasangannya di tabel kanan.
Kasus kerja: Menghitung total penjualan per kategori produk.
SELECT pr.kategori,
SUM(p.total) AS total_penjualan
FROM penjualan AS p
INNER JOIN produk AS pr
ON p.id_produk = pr.id_produk
GROUP BY pr.kategori;
Tips: selalu cek jumlah baris sebelum dan sesudah JOIN. Kalau tiba-tiba jumlahnya membengkak, kemungkinan ada data duplikat di kolom kunci.
7. CASE WHEN: Membuat Kategori Baru
CASE WHEN adalah versi SQL dari rumus IF di Excel. Berguna untuk membuat kolom kategori berdasarkan kondisi tertentu.
SELECT id,
total,
CASE
WHEN total >= 500000 THEN 'Besar'
WHEN total >= 300000 THEN 'Sedang'
ELSE 'Kecil'
END AS segmen_transaksi
FROM penjualan;
Kamu juga bisa menggabungkan CASE WHEN dengan agregat untuk analisis yang lebih tajam:
SELECT kota,
SUM(CASE WHEN total >= 500000 THEN 1 ELSE 0 END) AS transaksi_besar
FROM penjualan
GROUP BY kota;
Tips Latihan SQL Biar Cepat Lancar
- Mulai dari pertanyaan bisnis. Contohnya, "kota mana yang paling banyak pembelinya?", lalu terjemahkan ke query.
- Tulis query dengan format rapi. Satu klausa per baris bikin query mudah dibaca dan di-debug.
- Cek hasil secara bertahap. Jalankan potongan query dulu sebelum menambahkan JOIN atau agregasi.
- Pakai platform latihan gratis atau database contoh yang tersedia di banyak tutorial online.
Penutup
Tujuh query dasar ini sudah cukup untuk menangani banyak pekerjaan analisis sehari-hari: memilih kolom, menyaring data, mengurutkan, merangkum per kelompok, memfilter hasil agregasi, menggabungkan tabel, dan membuat kategori baru. Kuasai satu per satu, pahami logika eksekusinya, lalu latih dengan pertanyaan bisnis nyata.
Kalau kamu ingin belajar SQL lebih dalam lewat studi kasus bareng mentor, coba cek Bootcamp Zennit.