我如何从共享不同ID数字的多行中获取所有不同的组合

  • 本文关键字:获取 组合 数字 共享 ID sql oracle
  • 更新时间 :
  • 英文 :


我有大约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;

我尚不清楚是否可以解决您的整个问题。

最新更新