需要 SQL 查询帮助以解析 BigQuery 表中的 JSON 数据
Posted
技术标签:
【中文标题】需要 SQL 查询帮助以解析 BigQuery 表中的 JSON 数据【英文标题】:Need assistance with SQL query to parse JSON data from BigQuery table 【发布时间】:2021-12-03 05:35:50 【问题描述】:我正在使用 BigQuery 会话表来查询产品字段。但我只能查询具有硬编码索引值的第一行。有人可以帮助我使用 SQL 查询来解析 JSON 吗?
查询:
select visitId, hits[OFFSET(0)].product[OFFSET(0)].productSKU, hits[OFFSET(0)].product[OFFSET(0)].v2ProductName
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20170801`
LIMIT 5
示例会话表数据:
[
"visitId": "1501583974",
"hits": [
"product": [
"productSKU": "GGOEGESB015199",
"v2ProductName": "Test 1"
,
"productSKU": "GGOEGESB015200",
"v2ProductName": "Test 2"
]
]
]
预期结果:
【问题讨论】:
您能否重新表述您的问题以使其更易于理解?您在将嵌套数据插入 BigQuery 表时是否遇到问题?或者你想知道如何查询它? @KrishnuSengupta - 我已经更新了正文。我只想知道如何查询JSON数据。 【参考方案1】:我运行了以下查询:
select visitId, n.productSKU, n.v2productName from (select visitId, m.product
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20170801`, unnest(hits) as m
LIMIT 5), unnest (product) as n
在内部查询中,我取消嵌套结构“命中”的数组,而在外部查询中,我取消嵌套结构“产品”的内部数组。
输出:
【讨论】:
谢谢你,@KrishanuSengupta。这正是我一直在寻找的。我还找到了关于 UNNEST 的有用解释。 - 要将 ARRAY 转换为一组行,也称为“展平”,请使用 UNNEST 运算符。 UNNEST 接受一个 ARRAY 并为 ARRAY 中的每个元素返回一个包含一行的表。以上是关于需要 SQL 查询帮助以解析 BigQuery 表中的 JSON 数据的主要内容,如果未能解决你的问题,请参考以下文章