Anda dapat menggunakan fungsi agregat untuk mendapatkan catatan yang lebih 'relevan' untuk setiap email.
Saya rasa kueri ini akan memberi Anda hasil terbaik:
SELECT emailAddress, max(concat(fullName,',',address1,',',address2))
FROM table
GROUP BY emailAddress
Ini akan mengembalikan baris terkaya untuk setiap alamat email tetapi semua data akan dikembalikan dalam satu string (dipisahkan koma) sehingga Anda harus menguraikannya entah bagaimana.
Jika kinerja tidak menjadi masalah dan Anda ingin mendapatkan hasil normal yang ditetapkan dalam bidang terpisah, Anda dapat melakukannya:
SELECT table.emailAddress, fullName, address1, address2
FROM
table JOIN
(SELECT emailAddress,
max(concat(fullName,address1,address2)) as bestRowInOneString
FROM table
GROUP BY emailAddress
) bestRowsSubQuery
ON
concat(table.fullname,table.address1,table.address2) = bestRowsSubQuery.bestRowInOneString
AND table.emailAddress = bestRowsSubQuery.emailAddress