Penggunaan Select Distinct di MySQL

Ditulis Oleh:

Halo sahabat programmer, kali ini saya akan membahas mengenai penggunaan select distinct di mysql. Pada postingan sebelumnya saya telah membahas tentang pengelompokan data menggunakan group by lalu apakah penggunaan select distinct ini ada kaitannya dengan klausa/pernyataan group by? Mari simak pembahasan berikut ini.

Saat kita membuat query untuk menampilkan data pada suatu tabel, Sangat dimungkinkan kita akan mendapat duplikasi data pada baris tabel tersebut. Dengan menggunakan select distinct kita dapat menghapus duplikasi baris tersebut sehingga akan menampilkan data yang unik. Atau bisa juga dengan kata lain kita kelompokan data menjadi satu baris data yang unik untuk ditampilkan.

Baca juga:

Berikut adalah sintak select distinct pada MySQL:

SELECT DISTINCT
    nama_kolom
FROM
    nama_tabel
WHERE
    kondisi_where;

Perintah query diatas merupakan perintah sql sederhana di mysql. Terdapat 3 klausa/pernyataan penting didalamnya, yang pertama select distinct untuk membuat baris unik pada kolom tertentu. Lalu selanjutnya From untuk menentukan tabel yang akan ditampilkan. dan kondisi where untuk membuat kondisi tertentu pada query yang dijalankan.

Pernyataan Select tanpa Klausa Distinct

Saya akan contohkan kepada teman-teman bagaimana perbedaan saat kita ingin menampilkan data pada sebuah tabel di mysql dengan dan tanpa pernyataan distinct. Pada contoh pertama saya membuat pernyataan select tanpa distinct seperti pada sintak berikut:

SELECT jurusan
FROM mahasiswa;
pernyataan select tanpa klausa distinct

Dapat kita lihat dari hasil output diatas saya menampilan semua data pada kolom jurusan didalam tabel mahasiswa. Perhatikan hasil baris query diatas terdapat banyak duplikasi baris. Dengan menggunakan pernyataan DISTINCT maka duplikasi baris tersebut akan dihapus dan dikelompokan menjadi satu kelompok data yang unik

Pernyataan Select dengan Klausa Distinct

SELECT DISTINCT jurusan
FROM mahasiswa
pernyataan select dengan distinct

Terlihat dari hasil output diatas bahwa baris data pada kolom jurusan telah dikelompokan menjadi baris data yang unik. Sehingga tidak terdapat baris data yang duplikasi seperti pada contoh penggunaan SELECT tanpa pernyataan DISTINCT diatas.

Persamaan pernyataan Select Distinct dan Group By

Penggunaan pernyataan select distinct sama dengan pernyataan grop by. dengan catatan tanpa menggunakan fungsi agregat seperti count,avg,sum,max,min dan lainnya. Berikut ini saya contohkan persamaan antara kedua klausa ini.

Query select distinct:

SELECT DISTINCT jurusan
FROM mahasiswa

Query group by:

SELECT jurusan
FROM mahasiswa
GROUP BY jurusan;
perbedaan select distinct dan group by

Perhatikan pada hasil output diatas antara pernyaatan SELECT DISTINCT dan GROUP BY memiliki persamaan yang sama yaitu untuk pengelompokan data menjadi satu kelompok data yang unik dengan menghapus duplikasi baris data pada suatu query dalam tabel.

Perbedaan pernyataan Select Distinct dan Group By

Pernyataan/klausa select distinct dengan group by keduanya merupakan perintah sql untuk mengelompokan data atau menampilkan baris unik pada query di suatu tabel. Namun terdapat perbedaan dari keduanya perbedan yang paling mendasar adalah pada penggunaan fungsi agregat. Pernyataan select distinct tidak dapat mengelompokan data dengan menggunakan fungsi agregat. Sementara dengan group by dapat melakukan hal tersebut.

Pernyataan Select Distinct dengan fungsi count

SELECT DISTINCT jurusan,count(*)
FROM mahasiswa;
klausa select distinct tidak dapat menggunakan fungsi agregat

Perhatikan pada hasil output diatas penggunaan select distinct tidak dapat diikutkan dengan fungsi agregat ketika ingin mengelompokan data seperti yang dapat dilakukan oleh pernyataan group by.

Penggunaan fungsi agregat di SELECT DISTINCT hanya dapat menghasilkan satu baris data. Penggunaan fungsi agregat dengan select distinct contohnya untuk menghitung jumlah data yang unik dari suatu kolom. Contohnya adalah sebagai berikut:

SELECT COUNT(DISTINCT jurusan)
FROM mahasiswa;
select distinct dengan fungsi count

Pernyataan Group By dengan fungsi count

Selanjutnya mengenai pernyataan group by dengan fungsi agregat dapat dilakukan sekaligus, yaitu pada pengelompokan data dan jumlah masing-masing nilai dari kelompok data tersebut.

SELECT jurusan,count(*)
FROM mahasiswa
GROUP BY jurusan;
klausa group by dengan fungsi count

Dapat kita lihat dari hasil output diatas pernyataan group by dapat mengelompokan data sekaligus dapat menampilkan jumah data per kelompok dengan menggunakan fungsi count.

Saran Bacaan:

Kesimpulan

Dari pembahasan kali ini mengenai penggunaan select distinct di mysql, dapat saya simpulkan bahwa penggunaan distinct adalah untuk menghapus duplikasi baris dan mengelompokan baris data secara unik. Namun kelemahannya adalah select distinct tidak dapat mengelompokan data sekaligus kolaborasi dengan fungsi agregat. Yang hal tersebut hanya dapat dilakukan dengan menggunakan pernyataan Group By.

Setiawan Dimas

Interested on Programming, especially on Website Developping.
Have a bachelor degree from STIMIK Akakom Yogyakarta, majoring in Technical Information.
Focus on Content Writer Programming Website and Internet Marketing
Setiawan Dimas