gpt4 book ai didi

snowflake-cloud-data-platform - flatten 命令接受一个变量,如何将它用于多行

转载 作者:行者123 更新时间:2023-12-05 02:35:08 24 4
gpt4 key购买 nike

我是 snowflake 的新手,正在尝试找出一种方法来展平多行。感谢这里的任何帮助!我们正在从 snowpipe 接收文件。多个文件进入一个暂存表。每个文件包含多条记录,但是,所有记录都在一个数组变量中。当我使用 flatten 命令时,如果只有一个文件,它工作正常,它会展平数组并分隔记录。但是,当存在多个文件时,flatten 命令会失败并显示错误“单行子查询返回多于一行”。如何处理?

{ "test": [ { "a": true, "b": "20" }, { "a": true, "b": "30"}, { "a": false, "b": "40" } ], "Date": "Sun Jan 02 2022 16:00:30 GMT+0000 (Coordinated Universal Time)" } 

这是为了澄清而编造的数据,每个文件都包含这样的数据。我使用的 SQL 是

select * from table(flatten(select $1:test from @stage))

如果只有一个文件具有上述结构,它工作正常。但是,对于多个文件,它失败了

最佳答案

改变操作顺序

SELCT
s.*,
f.*
FROM @stage s,
TABLE(FLATTEN(input=>s.$1:test)) f

通过这种方式,您可以为每个阶段文件获取一行 s,然后可以访问扁平化的 f 结果。

关于snowflake-cloud-data-platform - flatten 命令接受一个变量,如何将它用于多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70623021/

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