我想在我的表中插入一个新的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数量。
现在可以理解吗?