根据 RECORD(repeated) 类型的列中不存在键来过滤 ROWs 列
Posted
技术标签:
【中文标题】根据 RECORD(repeated) 类型的列中不存在键来过滤 ROWs 列【英文标题】:to filter ROWs column based on non-existence of key in column of type RECORD(repeated) 【发布时间】:2020-09-16 11:21:07 【问题描述】:我正在使用 Bigquery 表来收集 vm 数据,我使用了一个名为 metric 的表,其中嵌套了 RECORD 类型的重复列。名为 resource.labels 的 RECORD 类型列之一包含如下所示的键值对:(instanceid、project_id 等)。
其中一个键是找到。此键可能存在也可能不存在,具体取决于条件。所以我需要一个查询来从 metric 表中选择 Found 键不存在的所有记录。
目前我正在取消嵌套记录,例如 select * from metric,unnest(resource.label) as res where res.key="Found"
我想要一个类似的查询,它可以准确地为我提供 Found 键不存在的记录。我正在使用 standard-sql
谢谢
【问题讨论】:
【参考方案1】:以下是 BigQuery 标准 SQL
#standardSQL
SELECT *
FROM `project.dataset.metric` t
WHERE 'Found' IN (SELECT key FROM t.resource.labels)
【讨论】:
以上是关于根据 RECORD(repeated) 类型的列中不存在键来过滤 ROWs 列的主要内容,如果未能解决你的问题,请参考以下文章
如何在 QTableView 的列中显示下拉列表并根据下拉列表进行过滤