Search code examples
sqlsap-iqsybase-asa

How to get unique pairs in SQL when there is many to many relationship in data


I have following data. I need to make unique pairs.

element1        element2
E1              C1
E1              C2
E2              C1
E2              C2
E3              C1
E3              C2

How can I use SQL to get pairs as follows:

E1,C1    E2,C2   Discard E3 

Solution

  • I would do something like:

    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