我正在尝试使用BigQuery上的两个表。从表1中,我想找到所有记录的登录ID;"世界";,然后根据每个登录号,我想创建一个列,每个名称都在一行中。不幸的是,当我运行这个:
Select name
From `table2`
Where acc IN (Select acc
From `table1`
WHERE source = 'World')
而不是得到这样的东西:
Acc1 | Acc2 | ACC 3 |
---|---|---|
Jeff | 杰夫 | >td style="text-align:right;">Ted|
Rob | ack||
Jack | /td>
这不是您所问问题的直接答案。通常,处理多行比处理多列更容易。
因此,我建议您将每个acc
值放在一个单独的行中,然后将名称列为数组:
select t2.acc, array_agg(t2.name order by t2.name) as names
from `table2` t2
where t2.acc in (Select t1.acc
From `table1` t1
where t1.source = 'World'
)
group by t2.acc;
否则,仅命名结果集中的列就将面临挑战。