是否可以从 Snowflake 中的 JSON 字符串中提取 page_location ?

问题描述 投票:0回答:1

我有这个 JSON 列,我需要将 key: page_location 的 string_value 提取到它自己的列中。我必须使用 Snowflake SQL。

[
  {
    "key": "page_title",
    "value": {
      "string_value": "Welcome"
    }
  },
  {
    "key": "version",
    "value": {
      "int_value": "567"
    }
  },
  {
    "key": "firebase_conversion",
    "value": {
      "int_value": "0"
    }
  },
  {
    "key": "session_engaged",
    "value": {
      "string_value": "0"
    }
  },
  {
    "key": "container_id",
    "value": {
      "string_value": "GTM-PHSFA"
    }
  },
  {
    "key": "ga_session_number",
    "value": {
      "int_value": "210"
    }
  },
  {
    "key": "engaged_session_event",
    "value": {
      "int_value": "1"
    }
  },
  {
    "key": "content_group",
    "value": {
      "string_value": "Homepage"
    }
  },
  {
    "key": "entrances",
    "value": {
      "int_value": "1"
    }
  },
  {
    "key": "hostname",
    "value": {
      "string_value": "www.homepage.com"
    }
  },
  {
    "key": "user_agent",
    "value": {
      "string_value": "Mozilla/5.0 (Linux; Android 12)"
    }
  },
  {
    "key": "ga_session_id",
    "value": {
      "int_value": "1194643792"
    }
  },
  {
    "key": "page_location",
    "value": {
      "string_value": "https://www.examplehomepage.com/"
    }
  }
]

我觉得我已经尝试了一切!谢谢您的帮助。

sql json events snowflake-cloud-data-platform
1个回答
0
投票
with data(json) as (
    select parse_json('[
  {
    "key": "page_title",
    "value": {
      "string_value": "Welcome"
    }
  },
  {
    "key": "version",
    "value": {
      "int_value": "567"
    }
  },
  {
    "key": "firebase_conversion",
    "value": {
      "int_value": "0"
    }
  },
  {
    "key": "session_engaged",
    "value": {
      "string_value": "0"
    }
  },
  {
    "key": "container_id",
    "value": {
      "string_value": "GTM-PHSFA"
    }
  },
  {
    "key": "ga_session_number",
    "value": {
      "int_value": "210"
    }
  },
  {
    "key": "engaged_session_event",
    "value": {
      "int_value": "1"
    }
  },
  {
    "key": "content_group",
    "value": {
      "string_value": "Homepage"
    }
  },
  {
    "key": "entrances",
    "value": {
      "int_value": "1"
    }
  },
  {
    "key": "hostname",
    "value": {
      "string_value": "www.homepage.com"
    }
  },
  {
    "key": "user_agent",
    "value": {
      "string_value": "Mozilla/5.0 (Linux; Android 12)"
    }
  },
  {
    "key": "ga_session_id",
    "value": {
      "int_value": "1194643792"
    }
  },
  {
    "key": "page_location",
    "value": {
      "string_value": "https://www.examplehomepage.com/"
    }
  }
]')
)
select 
    f.value:value as here_you_go
from data as d,
table(flatten(input=>d.json)) as f
where f.value:key = 'page_location';

© www.soinside.com 2019 - 2024. All rights reserved.