微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将递归 CTE 从 SQL Server 重写为 Clickhouse

如何解决将递归 CTE 从 SQL Server 重写为 Clickhouse

据我所知 Clickhouse 不支持递归 CTE,所以我想重写我在 sql Server 上使用的查询。 下面是片段:)

WITH cte
(ID,ID_PARENT,OBJ_DESC,CHILD,PARENT,CLASS_NAME,CATEGORY_NAME,LEVEL) 
AS ( 
    select a1.STC_sqlIDENTITY,a2.ID,a1.OBJ_DESC,a1.CHILD,a1.PARENT,a1.CLASS_NAME,a1.CATEGORY_NAME,4 as LEVEL from treeOne as a1
    join treeTwo as a2
    on a2.CHILD = a1.PARENT 
    where PARENT in 
    (select distinct PARENT from alberatura where PARENT not in (select CHILD from treeOne))
    union all
    select a2.sqlIDENTITY,itms.ID,a2.OBJ_DESC,a2.CHILD,a2.PARENT,a2.CLASS_NAME,a2.CATEGORY_NAME,itms.LEVEL+1 as LEVEL from treeOne a2
    INNER JOIN cte itms ON itms.CHILD = a2.PARENT
)
SELECT * FROM cte;

你认为 Clickhouse 做这样的操作有效率吗?

非常感谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。