如何根据元素的链接标记组ID

  • 本文关键字:ID 链接 何根 元素 sql
  • 更新时间 :
  • 英文 :


我有一个数据:

# input
row id1 id2
-----------
1   a   b
2   a   c
3   d   e
4   f   g
5   g   h
6   h   k

,我想创建一个新的组id基于"link"如下所示:

# desired result
row id1 id2  new_group_id
-------------------------
1   a   b   1
2   a   c   1
3   d   e   2
4   f   g   3
5   g   h   3
6   h   k   3

,其中第1组被标记,因为第1组的每一行都由";a&;"(a-b, a-c)连接,第3组被标记,因为每一行都由";g&;"连接。和"h"(f-g, g-h, h-k)。

对此有什么聪明的解决方案吗?谢谢!

只是为了观察,重新表述为…

SELECT MIN(row) x
, MAX(row) y
, id 
FROM  
( SELECT row, id1 id FROM my_table
UNION ALL
SELECT row, id2 id FROM my_table
) a
GROUP BY id;

它变成了一个直接的"缺口和岛屿"问题,有无数的解决方案。

最新更新