在 BigQuery 深处取消嵌套多个嵌套字段

Sim*_*ein 5 sql google-bigquery

我试图在 BigQuery 中使用标准 SQL 方言来取消嵌套 changelog.history.items 重复记录(以绿色标出)以访问嵌套项目表(以蓝色标出)中的行。父记录“变更日志”(以红色标出)不是重复记录,因此我在确定要取消嵌套的内容时遇到问题。

尝试取消嵌套 changelog.histories 或 changelog.histories.items 的查询会导致以下错误。

SELECT changelog.histories.items.to
FROM jirasparta_database.jira_issues, 
     unnest(changelog.histories) 
Run Code Online (Sandbox Code Playgroud)

错误:无法访问类型为 ARRAY、...> 的值的字段项,项 ARRAYto STRING、字段 STRING、字段类型 STRING、...>>、...>> 在 [1:28]

带有颜色编码的表模式图像

Mik*_*ant 11

#standardSQL
SELECT item.to   
FROM jirasparta_database.jira_issues, 
UNNEST(changelog.histories) history, UNNEST(history.items) item
Run Code Online (Sandbox Code Playgroud)

基本上,您必须展平 STRUCT 和 ARRAY 值。您可以查看此文档以获取更多详细信息。

  • 感谢您的简单而简洁的解释 (2认同)