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:
- Penggunaan group by di mysql
- Mengubah struktur tabel di mysql
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:
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 mahasiswaTerlihat 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 mahasiswaQuery group by:
SELECT jurusan FROM mahasiswa GROUP BY jurusan;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;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:
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;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:
- Cara membuat database mysql dengan phpmyadmin
- Menampilkan data dalam tabel di mysql
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.