DML: SELECT DISTINCT
SELECT DISTINCT adalah perintah dalam SQL yang mengembalikan nilai yang berbeda (unik). Kata kunci DISTINCT menghilangkan catatan duplikat dari hasil. Perintah ini sangat berguna saat berurusan dengan set data besar di mana entri duplikat dapat mendistorsi analisis.
Sintaks
Sintaks dasar untuk SELECT DISTINCT dalam SQL adalah:
SELECT DISTINCT column_name_1, column_name_2, ...
FROM table_name;SELECT DISTINCTmenentukan kolom yang ingin kita ambil.FROMmenentukan tabel dari mana data harus diambil.
Di sini, column_name_1, column_name_2, ... adalah nama kolom dalam tabel dari mana kita ingin memilih data.
Contoh
Pertimbangkan tabel berikut order.
| order_id | customer | amount |
|---|---|---|
| 1 | John | 30 |
| 2 | Jane | 45 |
| 3 | John | 20 |
| 4 | Jane | 30 |
| 5 | John | 30 |
Contoh 1: Memilih pelanggan yang berbeda
Jika kita ingin memilih semua pelanggan yang berbeda dari tabel order, kita akan menggunakan pernyataan SQL berikut:
SELECT DISTINCT customer
FROM order;Ini akan mengembalikan:
customer
John
Jane
Contoh 2: Memilih nilai jumlah yang berbeda
Jika kita ingin memilih semua jumlah yang berbeda dari tabel order, kita akan menggunakan pernyataan SQL berikut:
SELECT DISTINCT amount
FROM order;Ini akan mengembalikan:
amount
30
45
20
Contoh 3: Memilih lintas beberapa kolom
Pernyataan SELECT DISTINCT juga dapat digunakan untuk dua atau lebih kolom. Misalkan kita ingin memilih semua kombinasi customer dan amount yang unik; kita akan menggunakan pernyataan SQL berikut:
SELECT DISTINCT customer, amount
FROM order;Ini akan mengembalikan:
| customer | amount |
|---|---|
| John | 30 |
| Jane | 45 |
| John | 20 |
| Jane | 30 |
Poin Penting
- Kata kunci
DISTINCTdapat digunakan dengan lebih dari satu kolom. Dalam hal ini, kata kunci DISTINCT akan menghilangkan baris-baris di mana semua field yang dipilih identik. - Kata kunci
DISTINCTmenjaga satu baris untuk setiap grup duplikat. - Kata kunci
DISTINCTakan menganggap NULL sebagai nilai unik. Oleh karena itu, jika kita memiliki banyak NULL dalam kolom kita,SELECT DISTINCThanya akan menunjukkan satu NULL.