按小组

时间:2015-08-07 07:40:27

标签: sql oracle

我想在我的表中插入一个新的ID,这样就可以将行聚类到一个组中。我的数据包含一起发布的作者,作者1(auid1)与作者2(auid2)一起发布。我想知道我的数据中是否有一组作者共同发布并构建了一个网络。因此,每group_id标记一个网络。

还有一个附加条件:如果每个作者都与他的小组中的其他人一起发布,则作者属于同一组。这意味着,一个auid可以在多个组中。
以下是我的数据示例:

auid_1      auid_2  
--------------------
001         002     
008         002     
010         007     
001         008     
007         005     
005         010     
008         003     
007         012     
004         005     
006         005     
004         006     
004         009 

结果应如下所示:

auid_1      auid_2      group_id     
---------------------------------
001         002         1 
008         002         1 
010         007         2 
001         008         1 
007         005         2 
005         010         2 
008         003         3 
007         012         4 
004         005         5 
006         005         5 
004         006         5 
004         009         6 

其他信息:
我使用Qracle 11g,企业版
我们有一对ID,例如:

ID1  ID2
--------
1    2    
3    2    
1    3
4    5
...

我们希望为彼此有关系的所有对分配一个组ID。在我的示例中,ID 1和2以及3(每个ID属于另一个)是一个群集。下一个集群将是4,5,.... 我们需要一个SQL查询来为我们做这个聚类。我想,我们需要递归吗?我们不知道每个群集的ID数量。

现在可以理解吗?

0 个答案:

没有答案