gpt4 book ai didi

vertica - 如何将此相关子查询转换为Vertica友好的非相关查询

转载 作者:行者123 更新时间:2023-12-02 20:48:11 27 4
gpt4 key购买 nike

我有以下 SQL Server 查询,需要将其转换为 Vertica 查询。现在的问题是 vertica 不支持多级相关子查询,因此在我的示例中,t3.a = t1.a 不起作用

select * from t1
where not exists (
select * from t2
where t2.y = t1.y
and t2.x in (
select top 1 x from t3
where t3.z = t2.z
and t3.a = t1.a
order by t3.b
)
)

有人可以帮我做这个吗?

最佳答案

Vertica 不支持超过 1 级的相关子查询,您应该将它们转换为 JOIN。

它也不支持 TOP x 子句,请改用 LIMIT x。

类似这样的事情:

SELECT t1.*
FROM t1
LEFT JOIN t2 ON t1.y = t2.y
WHERE t2.y IS NULL
AND t2.x IN
(SELECT t3.x
FROM t3
JOIN t2 ON t3.z = t2.z
JOIN t1 ON t3.a=t1.a
ORDER BY t3.b LIMIT 1);

关于vertica - 如何将此相关子查询转换为Vertica友好的非相关查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47702336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com