我有大约150个名称,这些名称由160k不同的ID号链接在一起。我想获得这些名称的独特梳理。因此,例如,约翰和凯特的名字可以通过不同的ID链接数千次,但我只想知道约翰和凯特是一对链接的。在某些情况下,链接了两个以上的名称。例如,这是我的表格当前的样子:
ID| Name|
1| Mike|
1|John |
2|Kate |
2|John |
3|Frank|
3|Ted |
3|Blue |
4|John |
4|Mike |
5|John |
5|Kate |
6|John |
6|Kate |
在这种情况下,我们基于各种ID的组合。我们也有多余的组合;例如,ID1和4,以及2、5、6。我希望输出只是为了给我独特的组合,无论它们出现在表中。输出看起来像:
Name1| Name2 |Name3
Mike | John |
Kate | John |
Frank| Ted | Blue
4将被省略,因为它的弗里斯特排和5,6被省略,因为第二行覆盖了
对于链接 pairs ,您将使用一个自加入:
select distinct t1.name, t2.name
from t t1 join
t t2
on t1.id = t2.id and t1.name < t2.name;
我尚不清楚是否可以解决您的整个问题。