分层更新在蜂巢
问题描述:
我有一个蜂巢表如下:分层更新在蜂巢
Table A
docid corr_docid header
100 a
101 100 b
102 c
105 101 d
106 102 e
107 106 f
108 107 g
109 h
是否有可能创造另一个表。
这里corr_docid 107校正该文档与文档ID 107
表B如下:
Table A
docid corr_docid header newdocid
100 a 105
101 100 b 105
102 c 108
105 101 d 105
106 102 e 108
107 106 f 108
108 107 g 108
109 h 109
这是可能的配置单元。
答
您可以试试这个本机SQL来获得所需的结果,只有当您知道层次结构深度/级别时,这才会工作。
`select a.docid,
a.corr_docid,
case when b.docid is null then a.docid
when c.docid is null then b.docid
when d.docid is null then c.docid
else d.docid
end newdocid
from Table_A a left join Table_A b on a.docid = b.corr_docid
left join Table_A c on b.docid = c.corr_docid
left join Table_A d on c.docid = d.corr_docid ;`
+0
使用COALESCE重写'newdocid' –
+0
是否可以使用此链接中提供的CTE实现此目的:https://www.linkedin.com/pulse/step-by-step-guide-creating-sql-hierarchical-queries- bibhas - 米特拉 –
无法清楚地理解您的要求,但是您是否尝试了lead/lag/last_value函数? –