Я бы сделал что-то вроде:
select distinct a.element1, b.element2
from (
select element1, dense_rank() over(order by element1) as rank
from my_table
) a
join (
select element2, dense_rank() over(order by element2) as rank
from my_table
) b on a.rank = b.rank