Semua jawaban di atas benar, untuk kasus DISTINCT pada satu kolom vs GROUP BY pada satu kolom. Setiap mesin db memiliki implementasi dan optimalisasi sendiri, dan jika Anda peduli dengan perbedaan yang sangat kecil (dalam kebanyakan kasus) maka Anda harus menguji server tertentu DAN versi spesifik! Karena implementasinya dapat berubah ...
TETAPI, jika Anda memilih lebih dari satu kolom dalam kueri, maka PERBEDAAN pada dasarnya berbeda! Karena dalam hal ini akan membandingkan SEMUA kolom dari semua baris, bukan hanya satu kolom.
Jadi, jika Anda memiliki sesuatu seperti:
// This will NOT return unique by [id], but unique by (id,name)
SELECT DISTINCT id, name FROM some_query_with_joins
// This will select unique by [id].
SELECT id, name FROM some_query_with_joins GROUP BY id
Merupakan kesalahan umum untuk berpikir bahwa kata kunci DISTINCT membedakan baris dengan kolom pertama yang Anda tentukan, tetapi DISTINCT adalah kata kunci umum dengan cara ini.
Jadi, orang yang Anda harus berhati-hati untuk tidak mengambil jawaban di atas sebagai benar untuk semua kasus ... Anda mungkin bingung dan mendapatkan hasil yang salah sementara yang Anda inginkan adalah mengoptimalkan!