You can use CTE and some OVER articles :
WITH CTE AS ( SELECT [contact], [phone]=MAX(PHONE)OVER(PARTITION BY CONTACT), [address]=MAX(address)OVER(PARTITION BY CONTACT), [email]=MAX(email)OVER(PARTITION BY CONTACT), RN = Row_number() OVER( partition BY [contact] ORDER BY [contact]) FROM dbo.Address) SELECT [contact], [phone], [address], [email] FROM CTE WHERE RN = 1
Result:
CONTACT PHONE ADDRESS EMAIL Name1 435551123 street 1 name1@domain.com Name2 654987624 street2 name2@domanin.com
Demo
source share