snowflake-cloud-data-platform - 不明确的列名“VALUE”
问题描述
任何使用以下逻辑来克服具有雪花横向扁平化功能错误的模糊列的想法都非常感谢。我正在尝试通过从变量列中选择值来使用以下查询来展平嵌套的 JSON 数据,但是使用横向展平功能会出现不明确的列名“VALUE”错误。有人可以帮助我实现所需的输出。这里的问题是 JSON 键名作为“值”出现,我无法使用横向展平获取该数据。所需的输出已作为图像附加到此线程。
示例 JSON 数据
{"issues": [
{
"expand": "a,b,c,d",
"fields": {
"customfield_10000": null,
"customfield_10001": null,
"customfield_10002": [
{
"id": "1234",
"self": "xxx",
"value": "Test"
}
],
},
"id": "123456",
"key": "K-123"
}
]}*
*select
a.value:id::number as ISSUE_ID,
a.value:key::varchar as ISSUE_KEY,
b.value:id::varchar as ROOT_CAUSE_ID,
**b.value:value::varchar as ROOT_CAUSE_VALUE**
from
abc.table_variant,
lateral flatten( input => payload_json:issues) as a,
lateral flatten( input => a.value:fields.customfield_10002) as b;*
解决方案
WITH CTE AS
(select parse_json('{"issues": [
{
"expand": "a,b,c,d",
"fields": {
"customfield_10000": null,
"customfield_10001": null,
"customfield_10002": [
{
"id": "1234",
"self": "xxx",
"value": "Test"
}
],
},
"id": "123456",
"key": "K-123"
}
]}')
as col)
select
a.value:id::number as ID,
a.value:key::varchar as KEY,
b.value:id::INT as customfield_10002,
b.value:value::varchar as customfield_10002_value
from cte,
lateral flatten(input => cte.col, path => 'issues') a,
lateral flatten(input => a.value:fields.customfield_10002) b;
推荐阅读
- cmd - 我正在尝试更改 CMD 中的目录,但它不起作用。它将返回到当前目录,请参见:
- javascript - TypeORM 的 Upsert 问题
- c++ - 如何使用 eigen 和 C++ 实现 matlab 的 pdist?
- java - avutil.so 文件错误未加载 ffpmeg 库
- reactjs - setState 数组导致无限循环
- webstorm - WebStorm 未应用 ESLint 设置
- php - 在 Laravel 7 中使用 replicate() 方法时将文本附加到字段名称
- mysql - 删除 SQL 中的某些字符
- python - 重塑数据集以正确大小
- php - 导航栏图像在某些视图中正确显示,但在其他视图中显示不正确(Laravel PHP webapp)