Вы можете перечислить значения и сводку. Я бы использовал условную агрегацию:
select name, telephone,
max(case when seqnum = 1 then email end) as email_1,
max(case when seqnum = 2 then email end) as email_2,
max(case when seqnum = 3 then email end) as email_3,
max(case when seqnum = 4 then email end) as email_4,
max(case when seqnum = 5 then email end) as email_5
from (select t.*,
row_number() over (partition by name order by (select null)) as seqnum
from t
) t
group by name, telephone