我想知道 BigQuery 中 Array_contains 的类似功能。我正在尝试获取 Array of Struct 字段中存在的多个值的结果
Posted
技术标签:
【中文标题】我想知道 BigQuery 中 Array_contains 的类似功能。我正在尝试获取 Array of Struct 字段中存在的多个值的结果【英文标题】:I want to know a similar function for Array_contains in BigQuery. I am trying to get results for multiple values present in Array of Struct field 【发布时间】:2021-12-21 11:31:37 【问题描述】:我有一个 Struct 字段数组,其中包含以下值 - field_name= [1,2,3,4] 我想识别 BigQuery 中 field_name 不包含值 2 或 3 的行
示例数据:假设我有 4 行数据: row_id = 1 , field_name = [1,2,3,4] row_id = 2 , field_name = [1,2] row_id = 3 , field_name = [3,4] row_id = 4 , field_name = [4]
我想要什么 - 预期结果:row_id = 4 , field_name = [4] 我尝试使用 UNNEST 和 EXISTS,UNNEST 给出的输出为 row_id = 1、row_id = 2、row_id = 3 & row_id = 4
【问题讨论】:
【参考方案1】:考虑以下方法
select * from your_table t
where not exists (
select value
from t.field_name as value
where value in (2,3)
)
如果应用于您问题中的样本数据 - 输出是
如果你会使用where value in (1,2)
- 输出是
【讨论】:
以上是关于我想知道 BigQuery 中 Array_contains 的类似功能。我正在尝试获取 Array of Struct 字段中存在的多个值的结果的主要内容,如果未能解决你的问题,请参考以下文章