arrays - 如何将表 1 上的结构数组与 BigQuery 中表 2 的普通列连接起来
问题描述
select p.id,q.description
from table1 p
join table2 q
on q.control_number
in unnest(p.results.control_number)
当我处理这个时,我收到以下错误:
无法访问类型为 ARRAY<STRUCT<control_number string,...., ...>> 的值的字段 control_number
我还尝试过在表格之后取消嵌套,例如:
select p.id,q.f.description
from table1 p,Unnest(finder) f
join table2 q
on q.control_number in unnest(p.f.results.control_number)
但这也没有用。
谁能告诉我怎么了?
解决方案
在标准 SQL 中尝试以下操作:
with table1 as (
select '1' id, array[struct('a1' as control_number)] finder
UNION ALL
select '2' id, array[struct('a2' as control_number)] finder
UNION ALL
select '3' id, array[struct('a3' as control_number)] finder
),
table2 as (
select 'description for a1' description, 'a1' control_number
UNION ALL
select 'description for a2' description, 'a2' control_number
)
select p.id,q.description
from table1 p, unnest(p.finder) f join table2 q on q.control_number = f.control_number;
WITH
子句用于模拟表中的数据。
推荐阅读
- ruby - YAML 加载未正确解释每个变量
- sphinx - SphinxQL - 偏移超出范围
- r - model.matrix 错误:$ 运算符对原子向量无效
- android - Firebase 跟踪取消
- javascript - React FontAwesome Icon 没有为 onClick 传递道具
- spring-kafka - Spring Kafka 线程命名约定
- r - 多个条件组合的 ifelse 语句
- sql - 如何根据列值组合多行
- ssis - 在 SSIS 中使用 Renci 时如何避免崩溃
- javascript - 如何让我的 Discord 机器人每隔一个星期四在特定时间发一条消息?