【问题标题】:ambiguous column name 'VALUE'不明确的列名“VALUE”
【发布时间】:2020-11-28 02:57:30
【问题描述】:

非常感谢任何使用以下逻辑来克服具有雪花横向扁平函数错误的模棱两可的列的想法。 我正在尝试通过从变量列中选择值来使用以下查询来展平嵌套的 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;*

【问题讨论】:

    标签: snowflake-cloud-data-platform ambiguous


    【解决方案1】:

    试试

    b.value:"value"::varchar

    【讨论】:

    • 如果它对您有用,您介意将其标记为答案
    【解决方案2】:
    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;
    

    【讨论】:

    • 感谢您的回复@Varun.. 这行得通.. 但是从 demircioglu 得到了一个简单的解决方案
    • 当然,没问题
    猜你喜欢
    • 1970-01-01
    • 2014-05-03
    • 2018-01-21
    • 2023-03-08
    • 1970-01-01
    • 2017-04-09
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多