Penjelasan sederhana
DISTINCT membuang baris yang kembar dari hasil, sehingga tiap nilai hanya muncul sekali. Fungsinya mirip tombol Remove Duplicates di Excel, tapi tidak mengubah data aslinya.
Kalau kamu memilih lebih dari satu kolom, yang dianggap kembar adalah kombinasi semua kolom itu. SELECT DISTINCT kota, dept_id akan menampilkan setiap pasangan kota dan departemen yang berbeda.
Sintaks
SELECT DISTINCT kolom1, kolom2
FROM nama_tabel;
| Bagian | Keterangan |
|---|---|
DISTINCT | Ditulis tepat setelah SELECT. Berlaku untuk kombinasi semua kolom yang dipilih, bukan hanya kolom pertama. |
Tanda [kurung siku] berarti bagian opsional. Kata kunci SQL tidak membedakan huruf besar-kecil, tapi menulisnya dengan huruf besar membuat query lebih mudah dibaca.
Contoh DISTINCT
Data contoh: karyawan
Tabel karyawan
| id | nama | dept_id | kota | gaji | tgl_masuk | atasan_id |
|---|---|---|---|---|---|---|
| 1 | Andi Pratama | 3 | Bandung | 12500000 | 2019-03-11 | NULL |
| 2 | Bunga Lestari | 1 | Jakarta | 9800000 | 2020-07-01 | NULL |
| 3 | Candra Wijaya | 3 | Bandung | 8200000 | 2021-02-15 | 1 |
| 4 | Dewi Anggraini | 2 | Jakarta | 7500000 | 2022-05-09 | 6 |
| 5 | Eko Saputra | 1 | Jakarta | 6900000 | 2023-01-16 | 2 |
| 6 | Fajar Nugroho | 2 | Surabaya | 11000000 | 2018-09-03 | NULL |
| 7 | Gita Permata | 3 | Jakarta | 8200000 | 2023-08-21 | 1 |
| 8 | Hendra Gunawan | NULL | Medan | 5500000 | 2024-04-02 | NULL |
SELECT DISTINCT kota
FROM karyawan
ORDER BY kota;
Hasil 4 baris
| kota |
|---|
| Bandung |
| Jakarta |
| Medan |
| Surabaya |
Ada 8 karyawan tetapi hanya 4 kota berbeda. Jakarta yang muncul 4 kali sekarang tampil sekali.
Cara kerjanya, langkah demi langkah
FROM karyawan: database mengambil 8 baris karyawan.SELECT DISTINCT kota: hanya kolom kota yang diambil. Nilainya ada 8, tetapi Jakarta muncul 4 kali dan Bandung 2 kali.- Nilai yang kembar dibuang, tersisa 4 kota: Bandung, Jakarta, Medan, Surabaya.
ORDER BY kota: keempatnya diurutkan sesuai abjad.
Dipakai untuk apa di kantor?
- Mengetahui ada berapa kota, cabang, atau kategori produk di data.
- Membuat daftar pilihan untuk filter di dashboard.
Kesalahan yang sering terjadi
- Mengira
DISTINCThanya berlaku untuk kolom pertama. Ia berlaku untuk gabungan semua kolom yang dipilih. - Memakai
DISTINCTuntuk menutupi hasil JOIN yang dobel. Lebih baik cari penyebab barisnya dobel, karena angka total bisa ikut salah.
ORDER BY