Bigquery 未嵌套数组

Posted

技术标签:

【中文标题】Bigquery 未嵌套数组【英文标题】:Bigquery UNNEST ARRAYS 【发布时间】:2019-07-03 11:58:28 【问题描述】:

我想要 item_name 的列表,但 contentType 必须是“POI”

[1]https://imgur.com/a/YEIx66C

select param.item_name from 'dataset', 
UNNEST(event_params) AS param
where event_name  = "select_content" AND param.value.string_value = "POI"

【问题讨论】:

【参考方案1】:

以下是 BigQuery 标准 SQL

#standardSQL
SELECT 
  ( SELECT value.string_value
    FROM UNNEST(event_params) param
    WHERE key = 'item_name'
  ) AS item_name
FROM `project.dataset.table`
WHERE (
  SELECT COUNT(1) FROM UNNEST(event_params) param
  WHERE (key, value.string_value) = ('content_type', 'POI') OR key = 'item_name'
  ) = 2   

【讨论】:

感谢您的回复米哈伊尔。但我仍然没有得到 item_name where content_type = "POI"。该查询还返回 item_name,其中 content_type 是例如"路线" [1] imgur.com/a/7aaCjom 这不可能 - 所以你应该检查你到底在运行什么!或者您的数据可能不是您在问题中显示的内容

以上是关于Bigquery 未嵌套数组的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 中未嵌套的 json 对象的字符串化数组

BigQuery SQL 中未嵌套数组的字符串函数

Google BigQuery:UNNEST 结构数组和未嵌套项作为结构

在 BigQuery 上展平多个嵌套数组

将嵌套数组加载到 bigquery

BigQuery - 相关子查询取消嵌套数组不起作用