联合所有多个查询 Google BigQuery

Posted

技术标签:

【中文标题】联合所有多个查询 Google BigQuery【英文标题】:Union ALL multiple query Google BigQuery 【发布时间】:2014-05-30 11:06:34 【问题描述】:

我有三个具有相同列数和结构的查询,Google BigQuery 是否支持全部联合?我知道它支持联合,但我需要它将查询结果合并为一个结果。

我试过了:

SELECT * 
FROM 
(SELECT a.a AS a, a.b AS b, d.c AS c FROM table_a a JOIN table_d d on d.a = a.a),
(SELECT c.a AS a, c.b AS b, d.c AS c FROM table_c c JOIN table_d d on d.a = ca.a),
(SELECT b.a AS a, b.b AS b, d.c AS c FROM table_b b JOIN table_d d on d.a = b.a)

我收到以下错误:

Union results in ambiguous schema [d.c] is ambiguous and is aliasing multiple fields

感谢您的帮助。

【问题讨论】:

您可以公开分享数据集的样本吗? ***ers 将很乐意为有效的查询提供帮助 - 使用实际数据进行测试会更容易。 感谢您的回复,我不能真正分享数据集的样本,它是一个没有嵌套的普通表,数据是从 csv 文件加载到 BigQuery 中的。如果有帮助 请分享您的数据集 id 名称和正确的查询,BQ 团队可能会接手,并能够回答您。 我会看看我能做什么。目前我只需要知道如何在 BigQuery 中进行联合。 每个子查询是否独立工作? 【参考方案1】:

您必须知道数据是来自表 a、b 还是 c?如果不需要知道,可以试试下面的查询:

select *
from
(select a, b
from table_a, table_b, table_c) as a
join
(select a, c
from table_d) as d 
on a.a = d.a

【讨论】:

以上是关于联合所有多个查询 Google BigQuery的主要内容,如果未能解决你的问题,请参考以下文章

使用多个联合优化查询性能

MYSQL 多表联合查询问题

在多个数据库上选择相同查询并将它们联合的规范方法是啥?

多个Google表格/工作簿上的SQL联盟

SQL多表联合查询

查询联合查询