Podría usar una función agregada para obtener el registro más "relevante" para cada correo electrónico.
Creo que esta consulta le daría el mejor resultado:
SELECT emailAddress, max(concat(fullName,',',address1,',',address2))
FROM table
GROUP BY emailAddress
Devolverá la fila más rica para cada dirección de correo electrónico, pero todos los datos se devolverán dentro de una cadena (separados por comas), por lo que tendrá que analizarlos de alguna manera.
Si el rendimiento no es un problema y desea obtener un conjunto de resultados normal en campos separados, puede optar por uno:
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