集計関数を使用して、各電子メールのより「関連性の高い」レコードを取得できます。
このクエリで最良の結果が得られると思います:
SELECT emailAddress, max(concat(fullName,',',address1,',',address2))
FROM table
GROUP BY emailAddress
各電子メールアドレスの最も豊富な行が返されますが、すべてのデータは1つの文字列(コンマ区切り)内で返されるため、何らかの方法で解析する必要があります。
パフォーマンスに問題がなく、通常の結果セットを別々のフィールドで取得したい場合は、次のいずれかを使用できます。
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