我在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中执行此操作?
答案 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;