Ответ 1
Самое простое решение:
SQL> select * from t69
2 /
NAME NICKNAME ID
---------- ---------- ----------
Joe Joey 14
Joe 14
Michael 15
Mick 15
Mickey 15
SQL> select max(name) as name
2 , max(nickname) as nickname
3 , id
4 from t69
5 group by id
6 /
NAME NICKNAME ID
---------- ---------- ----------
Joe Joey 14
Michael Mickey 15
SQL>
Если у вас есть 11gR2, вы можете использовать новомодную функцию LISTAGG(), но в противном случае достаточно просто обернуть вышеупомянутый оператор в SELECT, который объединяет столбцы NAME и NICKNAME.