为了账号安全,请及时绑定邮箱和手机立即绑定

如何查找无向图的所有连接子图

如何查找无向图的所有连接子图

慕容708150 2019-12-04 13:18:56
对于我正在努力解决的问题,我需要一些帮助。表格示例:ID |Identifier1 | Identifier2 ---------------------------------1  |      a     | c         2  |      b     | f         3  |      a     | g         4  |      c     | h        5  |      b     | j         6  |      d     | f         7  |      e     | k  8  |      i     |          9  |      l     | h    我想在两列之间对彼此相关的标识符进行分组,并分配一个唯一的组ID。所需输出:Identifier | Gr_ID    |    Gr.Members                 ---------------------------------------------------a       |      1      |   (a,c,g,h,l)  b       |      2      |   (b,d,f,j)       c       |      1      |   (a,c,g,h,l)  d       |      2      |   (b,d,f,j)       e       |      3      |   (e,k)                 f       |      2      |   (b,d,f,j)       g       |      1      |   (a,c,g,h,l)  h       |      1      |   (a,c,g,h,l)  j       |      2      |   (b,d,f,j)       k       |      3      |   (e,k)                 l       |      1      |   (a,c,g,h,l)  i       |      4      |   (i)  注意:“ Gr.Members”列不是必需的,大部分用于更清晰的视图。因此,组的定义是:如果一行与该组的至少一行共享至少一个标识符,则该行属于该组但是必须将组ID分配给每个标识符(由两列的并集选择)而不是行。关于如何构建查询以提供所需输出的任何帮助?谢谢。更新:以下是一些带有预期输出的额外样本集。给定表:Identifier1 | Identifier2   ----------------------------    a       |   f    a       |   g    a       |  NULL    b       |   c    b       |   a    b       |   h    b       |   j    b       |  NULL    b       |  NULL    b       |   g    c       |   k    c       |   b    d       |   l    d       |   f    d       |   g    d       |   m    d       |   a    d       |  NULL    d       |   a    e       |   c    e       |   b    e       |  NULL预期的输出:所有记录应属于同一组,组ID = 1。给定表:Identifier1 | Identifier2--------------------------a           |   ab           |   bc           |   ac           |   bc           |   c预期的输出:记录应该在同一组中,组ID = 1。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 699 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信