【发布时间】:2017-06-28 21:11:29
【问题描述】:
这是表的记录布局 (load_history) 我尝试在使用标准 Sql 时使用过滤器(因为旧版 sql 在某些时候可能会过时):
[
{
"mode": "NULLABLE",
"name": "Job",
"type": "RECORD",
"fields": [
{
"mode": "NULLABLE",
"name": "name",
"type": "STRING"
},
{
"mode": "NULLABLE",
"name": "start_time",
"type": "TIMESTAMP"
},
{
"mode": "NULLABLE",
"name": "end_time",
"type": "TIMESTAMP"
},
{
]
},
{
"mode": "REPEATED",
"name": "source",
"type": "RECORD",
"description": "source tables touched by this job",
"fields": [
{
"mode": "NULLABLE",
"name": "database",
"type": "STRING"
},
{
"mode": "NULLABLE",
"name": "schema",
"type": "STRING"
},
{
"mode": "NULLABLE",
"name": "table",
"type": "STRING"
},
{
"mode": "NULLABLE",
"name": "partition_time",
"type": "TIMESTAMP"
}
]
}
]
我需要过滤并仅选择数组“source”中有条目的记录,其“schema”和“table”字段与某些值匹配(例如 schema='log' AND table='customer' 在同一数组条目)。
仅在结构(模式名称)中的一个字段上进行过滤时,以下方法有效:
select name, array(select x from unnest(schema) as x where x ='log' ), table
from (select job.name , array(select schema from unnest(source)) as schema,
array(select table from unnest(source)) as table
from config.load_history)
但是,我无法过滤同一数组条目中的字段组合。
感谢您的帮助
【问题讨论】:
标签: google-bigquery