2016-08-03 89 views
1

我在BigQuery中有2個表格,我想將它們的列合併在一起並堆疊數據以獲得包含所有數據的1個大表格。實際上,這些表格包含相同的數據,但少數列具有不同的名稱,而很少有相同的名稱。bigquery合併來自不同表格的相同列

下面是如何在這些表中存在的數據的一個示例:

表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中執行此操作?

回答

1

您正在尋找union all

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

謝謝戈登,因爲名字在2個表中不同,即印象和total_impressions。一個工會都不能合併這兩個。我認爲馬克的解決方案是可行的。 – sandeep0101

+0

@ sandeep0101。 。 。什麼? SQL不要求列名與'union' /'union all'相同。輸出列名取自第一個子查詢。 –

0

默認的BigQuery仍然使用它自己的傳統SQL方言。在那裏你可以用逗號as explained in the reference來連接多個表。

對於它的工作,每個表中的列首先需要獲得相同的名稱。

所以查詢就變成了:

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聲明。

相關問題