gpt4 book ai didi

common-table-expression - 为什么 Snowflake 不支持 CTE 范围(任何解决方法?)

转载 作者:行者123 更新时间:2023-12-04 08:43:25 32 4
gpt4 key购买 nike

我是一名商业智能 (BI) 顾问,我遇到了 Snowflake 不支持 CTE 范围的问题。

在 BI 中,重新定义 SQL 位非常有用。但是,如果我定义一个名为 revenue_calculations 的 CTE,然后在 where 子句中添加一些新内容,并在脚本中进一步将 revenue_calculations 重新声明为新的 CTE(或嵌套在另一个 CTE 声明中),Snowflake 只会读取 Revenue Calculations 一次并使用整个脚本中的第一个 CTE 声明。

大多数其他数据库(例如 Bigquery)和编程语言都有对象范围。有什么解决方法吗?这会改变吗?

***已更新以包含代码示例

with cte_in_question as (select 1),
cte2 as (
with cte_in_question as (select 2)
select * from cte_in_question
)
SELECT * FROM cte2

Snowflake 将其评估为 1,将 BQ 评估为 2。2 对我来说似乎更正确。想法?

最佳答案

事实证明,在 Snowflake 中,默认情况下,返回外部 CTE 的数据。但这种行为是可以改变的。您需要联系 Snowflake 支持并请求他们更改此行为(在您的帐户级别),以便返回来自内部 CTE 的数据。

关于common-table-expression - 为什么 Snowflake 不支持 CTE 范围(任何解决方法?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59132427/

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