You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Snowflake中使用Lateral Flatten解析嵌套JSON并提取指定字段

提取嵌套JSON中指定event_params的string_value值

针对需求,这里提供修改后的SQL语句,实现从event_params数组中提取key为"link_class"对应的string_value,并作为link_class列返回:

select 
    raw,
    raw:device.web_info.hostname::string as hostname,
    ev.value:value.string_value::string as link_class
from ANALYTICS_323116990 t,
lateral flatten(input => t.raw:event_params) ev
where ev.value:key::string = 'link_class'

关键改动说明:

  • 过滤目标参数:通过where子句筛选出event_params中key等于'link_class'的数组元素,避免返回无关参数项(比如示例中的page_title)
  • 精准提取值:通过ev.value:value.string_value::string深度访问嵌套结构,提取目标字符串值并显式转换为字符串类型
  • 优化flatten路径:将flatten的输入直接指定为t.raw:event_params,语法更简洁清晰

如果你的数据中存在单条记录包含多个link_class参数的情况,可以使用聚合函数合并结果为数组:

select 
    raw,
    raw:device.web_info.hostname::string as hostname,
    array_agg(ev.value:value.string_value::string) as link_class_list
from ANALYTICS_323116990 t,
lateral flatten(input => t.raw:event_params) ev
where ev.value:key::string = 'link_class'
group by raw, hostname

内容的提问来源于stack exchange,提问作者Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 16:05:20