bigquery合并来自不同表的相同列

时间:2016-08-03 10:43:40

标签: sql google-bigquery

我在BigQuery中有2个表,我想将它们的列合并在一起并堆叠数据以获得包含所有数据的1个大表。实际上,这些表包含相同的数据,但很少有列具有不同的名称,而很少有相同的名称。

以下是这些表中数据存在方式的示例:

表1:

Date     | BU  | Campaign | Impressions | Clicks
01/01/15 | XYZ |  C1      |    500      |   20

表2:

Date     | BU  | Campaign | Total_Impressions | Total_Clicks
01/01/16 | ABC |  C2      |    600            | 30

预期产出:

表3:

Date     | BU  | Campaign | Impressions | Clicks
01/01/15 | XYZ |  C1      |    500      |   20
01/01/16 | ABC |  C2      |    600      |   30

我如何在BigQuery中执行此操作?

2 个答案:

答案 0 :(得分:2)

默认情况下,BigQuery仍然使用自己的遗留SQL方言。在那里你可以使用逗号as explained in the reference UNION多个表。

要使其工作,每个表中的列首先需要获得相同的名称。

然后查询变为:

SELECT *
FROM 
  (select bu, campaign, impressions, clicks from table1),
  (select bu, campaign, total_impressions AS impressions, total_clicks AS clicks from table2)

使用新的标准SQL 而不是旧方言时,可以使用union all语句。

答案 1 :(得分:1)

您正在寻找union all

select bu, campaign, impressions, clicks
from table1
union all
select bu, campaign, total_impressions, total_clicks
from table2;