Navicat Blog

Memilih Value Berbeda dari Relasional Database Apr 14, 2023 oleh Robert Gravelle

Kolom tabel, seperti kolom yang menyimpan nama depan, mungkin berisi banyak value duplikat. Jika Anda tertarik untuk mencantumkan value yang berbeda (berbeda), perlu ada cara untuk melakukannya tanpa menggunakan pernyataan SQL yang rumit. Dalam database yang sesuai dengan ANSI SQL seperti PostgreSQL, SQL Server, dan MySQL, cara untuk memilih hanya value yang berbeda dari kolom adalah dengan menggunakan klausa SQL DISTINCT. Ini menghapus duplikat dari kumpulan hasil pernyataan SELECT, hanya menyisakan value unik. Dalam artikel blog ini, kita akan belajar cara menggunakannya.

Sintaksis dan Behaviour

Untuk menggunakan klausa SQL DISTINCT, yang perlu Anda lakukan adalah memasukkan kata kunci DISTINCT antara di SELECT dan kolom dan / atau daftar ekspresi seperti:

SELECT DISTINCT columns/expressions
FROM tables
[WHERE conditions];

Anda dapat menyertakan satu atau beberapa kolom dan/atau ekspresi dalam pernyataan Anda, karena query menggunakan kombinasi value di semua kolom tertentu dalam daftar SELECT untuk mengevaluasi keunikannya. Juga, jika Anda menerapkan klausa DISTINCT ke kolom yang memiliki value NULL, klausa DISTINCT hanya akan menyimpan satu NULL dan menghilangkan yang lain. Dengan kata lain, klausa DISTINCT memperlakukan semua value NULL sebagai value yang sama.

Contoh Satu Kolom

Kasus penggunaan umum untuk query adalah mencantumkan semua kota dan/atau negara pelanggan atau pengguna organisasi. Berikut adalah query di Navicat Premium 16 melawan classicmodels sample database:

city_query (107K)

Seperti yang dihighlight dengan garis merah, ada kota duplikat.

Untuk mendapatkan daftar kota unik, kita dapat menambahkan kata kunci DISTINCT ke pernyataan SELECT:

city_query_distinct (49K)

Kita dapat memanfaatkan fitur penyelesaian kode Navicat untuk memunculkan kata kunci DISTINCT. Navicat menampilkan informasi dalam daftar drop-down saat Anda mengetik pernyataan SQL Anda di editor, ini membantu Anda dengan penyelesaian pernyataan dan properti objek database yang tersedia, misalnya database, tabel, field, tampilan dll dengan ikon yang sesuai:

autocomplete (30K)

Contoh Beberapa Kolom

Kata kunci DISTINCT juga dapat diterapkan ke beberapa kolom. Dalam konteks itu, query hanya akan mengembalikan baris di mana semua kolom yang dipilih unik. Pertama, mari tambahkan field negara ke query terakhir kita:

city_country_query (70K)

Sekali lagi, kita melihat duplikat, yang masuk akal karena kota duplikat kemungkinan akan berada di negara yang sama.

Sekali lagi, menambahkan kata kunci DISTINCT akan menyebabkan engine query melihat kombinasi value di kolom kota dan negara untuk mengevaluasi dan menghapus duplikat:

city_country_query_distinct (68K)

DISTINCT dengan Value Null

Seperti disebutkan di atas, klausa DISTINCT memperlakukan semua value NULL sebagai value yang sama sehingga hanya satu contoh NULL yang disertakan dalam kumpulan hasil. Kita dapat mengujinya sendiri dengan menanyakan kolom seperti ini di tabel pelanggan yang sama dengan yang kita query sebelumnya:

region_column (102K)

Seperti yang diperkirakan, menambahkan kata kunci DISTINCT menghapus semua kecuali satu contoh NULL:

region_query_distinct (42K)

Pikiran Akhir tentang Memilih Value Berbeda dari Database Relasional

Dalam artikel blog ini, kita belajar cara menggunakan klausa SQL DISTINCT, yang menghapus duplikat dari kumpulan hasil pernyataan SELECT, hanya menyisakan value unik. Seperti yang kita lihat, ini dapat bekerja pada satu atau lebih kolom serta value NULL. Namun, jika Anda perlu menerapkan fungsi agregat pada satu atau beberapa kolom, Anda harus menggunakan klausa GROUP BY sebagai gantinya.

Navicat Blog
Feed Entri
Arsip Blog
Bagikan