Perbedaan Antara GROUP BY dan DISTINCT dalam MySQL
Perbedaan Antara GROUP BY dan DISTINCT dalam MySQL - Pada kesempatan ini saya akan menjelaskan perbedaan antara DISTINCT dan GROUP BY dalam MySQL. Kedua perintah ini sering digunakan untuk mengelola dan menyaring data yang bersifat duplikat, tetapi memiliki tujuan yang berbeda.
Pengertian DISTINCT
DISTINCT adalah perintah yang digunakan dalam query MySQL untuk menghapus duplikasi dan hanya menampilkan nilai yang unik dari kolom yang dipilih.
Sintaks DISTINCT:
SELECT DISTINCT nama_kolom FROM nama_tabel;
- DISTINCT hanya berlaku untuk kolom yang disebutkan dalam query.
- Jika ada beberapa baris dengan nilai yang sama dalam kolom tersebut, hanya satu yang akan ditampilkan.
CREATE TABLE pelanggan (id INT AUTO_INCREMENT PRIMARY KEY,nama VARCHAR(50),kota VARCHAR(50));INSERT INTO pelanggan (nama, kota) VALUES('Andi', 'Jakarta'),('Budi', 'Bandung'),('Citra', 'Jakarta'),('Andi', 'Jakarta'),('Budi', 'Bandung'),('Dewi', 'Surabaya'),('Eka', 'Medan'),('Fajar', 'Surabaya'),('Gita', 'Bandung'),('Hadi', 'Medan');
Baca Juga: Cara Menggunakan GROUP BY dan HAVING di MySQL
Contoh Penggunaan DISTINCT
Misalkan kita memiliki tabel pelanggan dengan data berikut:
Jika kita ingin menampilkan hanya nama pelanggan yang unik, kita bisa menggunakan query berikut:
SELECT DISTINCT nama FROM pelanggan;
Hasil Outputnya:
Query ini menghapus duplikasi dan hanya menampilkan nama pelanggan yang unik.
Pengertian GROUP BY
GROUP BY digunakan untuk mengelompokkan data berdasarkan nilai yang sama dalam satu atau lebih kolom. Biasanya, GROUP BY digunakan bersama dengan fungsi agregasi seperti COUNT(), SUM(), AVG(), MAX(), dan MIN().
Sintaks GROUP BY:
SELECT nama_kolom, fungsi_agregasi(nama_kolom) FROM nama_tabel GROUP BY nama_kolom;
- GROUP BY mengelompokkan baris yang memiliki nilai yang sama dalam kolom yang disebutkan.
- Fungsi agregasi dapat digunakan untuk menghitung atau menganalisis setiap kelompok data.
Contoh Penggunaan GROUP BY
Jika kita ingin menghitung jumlah pelanggan di setiap kota dari tabel pelanggan, kita bisa menggunakan query berikut:
SELECT kota, COUNT(nama) AS jumlah_pelanggan FROM pelanggan GROUP BY kota;
Hasil Outputnya:
Query ini mengelompokkan data berdasarkan kota dan menghitung jumlah pelanggan dalam setiap kota.
Perbedaan DISTINCT dan GROUP BY
Aspek | DISTINCT | GROUP BY |
---|---|---|
Fungsi | Menghapus duplikasi | Mengelompokkan data |
Penggunaan | Tidak bisa menggunakan fungsi agregasi | Bisa menggunakan fungsi agregasi seperti COUNT(), SUM(), dll. |
Hasil | Menampilkan nilai unik dari kolom tertentu | Menampilkan kelompok data berdasarkan kolom tertentu |
Kapan Menggunakan DISTINCT dan GROUP BY?
- Gunakan DISTINCT jika hanya ingin menghilangkan data duplikat tanpa melakukan agregasi.
- Gunakan GROUP BY jika ingin mengelompokkan data dan menerapkan fungsi agregasi.
Contoh tambahan:
Jika ingin menampilkan daftar kota unik dari tabel pelanggan:
SELECT DISTINCT kota FROM pelanggan;
Hasil Outputnya:
Jika ingin menghitung jumlah pelanggan di setiap kota:
SELECT kota, COUNT(*) FROM pelanggan GROUP BY kota;
Hasil Outputnya:
Kesimpulan
DISTINCT digunakan untuk menghapus duplikasi dan menampilkan nilai unik.
GROUP BY digunakan untuk mengelompokkan data dan sering digunakan dengan fungsi agregasi.
Pemilihan antara DISTINCT dan GROUP BY tergantung pada kebutuhan analisis data yang dilakukan.
Semoga artikel ini membantu memahami perbedaan DISTINCT dan GROUP BY dalam MySQL. Selamat belajar!