【发布时间】:2016-08-05 05:27:53
【问题描述】:
我正在尝试找出一种有效的方法来识别基于迭代多连接的公共数据点。例如:
INPUT
-----
ID1 ID2
X Y
Y Z
Z 1
A B
C D
1 A
B A
X 连接到 Y。Y 连接到 Z。Z 连接到 1。 因此,X 和 1 通过 Y 和 Z 连接(“共同”),以此类推,以创建以下输出:
OUTPUT
------
ID1 ID2 CommonKey
X Y 1
Y Z 1
Z 1 1
A B 1
C D 2
1 A 1
B A 1
如果数据点以任何方式相互关联,无论是当前的还是未来的,它们都应该被赋予相同的“CommonKey”
我已经研究过使用 CTE 来解决这个问题,但到目前为止还没有成功。
【问题讨论】:
-
如何设置2?
C D 2?你能解释一下吗? -
"只要有单线程加入网络,就全部加入"
-
C 和 D 没有共同点/连接到任何其他数据点,因此它被分配了 line = 2 中的下一个公共键
-
你可以用
sub query?公共键是 1 和 2。
标签: sql sql-server join identity common-table-expression