」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 使用遞歸CTE查找無向圖中所有連通子圖的技巧

使用遞歸CTE查找無向圖中所有連通子圖的技巧

發佈於2025-04-14
瀏覽:700

How to Find All Connected Subgraphs in an Undirected Graph Using a Recursive CTE? 
如何找到無向圖的所有連接子圖

[其他。 example表:

&]1

a

c

2

bfg(a,c,c,g,h,h,l)c1
3a
4ch
5bj
6df
7ek
8i
9lh
Desired Output:
IdentifierGr_IDGr.Members
1

(a,c,g,h,l)

d2(b,d,f,j)e3(e,k)f 2 (b,d,f,j)j with with with cte_idents 作為 (( 選擇Ident1作為IDENS 來自@T 聯盟 選擇Ident2作為IDENS 來自@T ) ,cte_pairs 作為 (( 選擇Ident1,Ident2 來自@T esident1>> IDENS2 聯盟 選擇Ident2 AS Ident1,Ident1 AS Ident2 來自@T esident1>> IDENS2 ) ,CTE_RECURSIVE 作為 (( 選擇 鑄件(CTE_IDENTS.IDEN作為Varchar(8000))作為錨定 ,Ident1 ,Ident2 ,cast(','sident1','distion2',as varchar(8000)) ,1作為lvl 從 cte_pairs cte_idents.ident = cte_pairs.inder1上的cte_idents內部加入cte_idents1 聯盟全部 選擇 cte_recursive.anchorident ,cte_pairs.Ident1 ,cte_pairs.inden2 ,cast(cte_recursive.IdentPath cte_pairs.Ident2',as varchar(8000))作為Identath ,cte_recursive.lvl 1作為lvl 從 cte_pairs cte_recursive.ident2 = cte_pairs.inder1上的cte_recursive cte_recursive1 在哪裡 cte_recursive.IdentPath不喜歡cons('%,'cte_pairs.ident2',%'as varchar(8000)) ) ,cte_recursionResult 作為 (( 選擇錨定,Ident1,Ident2 來自CTE_RECURSIVE ) ,cte_cleanresult 作為 (( 選擇錨定,Ident1作為Ident 來自cte_recursionResult 聯盟 選擇錨定,Ident2作為IDISE 來自cte_recursionResult ) 選擇 cte_idents.Ident ,ca_data.xml_value為null時的情況 然後cte_idents.SERS else ca_data.xml_value結束為groupmembers ,dense_rank()over(訂購 ca_data.xml_value為空的情況 然後cte_idents.SERS else ca_data.xml_value end )作為groupid 從 cte_idents 交叉應用 (( 選擇CTE_CLEANRESULT.IST'' 來自cte_cleanresult cte_cleanresult.anchorident CTE_CLEANRESULT.IST )作為ca_xml(xml_value) 交叉應用 (( 選擇ca_xml.xml_value.value('。','nvarchar(max)') )作為ca_data(xml_value) 在哪裡 CTE_IDENTS。 通過身份訂單; [2 (i) The final SELECT statement uses a combination of FOR XML路徑和Cross應用於每個組的連接標識符。 [&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&rank()用於為每個組分配唯一的組ID。
1(a,c,g,h,l)
2(b,d,f,j)
示例output: 3
The CTE_Idents table contains all the unique identifiers in the graph.The CTE_CleanResult table extracts the connected identifiers for each anchor identifier.
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3