2017-08-30 67 views
0

我正在處理以下兩個表格;根據一列彙總表格,然後將其與另一個表格合併

表1

Key   |Clicks |Impressions 
-------------+-------+----------- 
USA-SIM-CARDS|55667 |544343  
DE-SIM-CARDS |4563 |234829  
AU-SIM-CARDS |3213 |232242  
UK-SIM-CARDS |3213 |1333223  
CA-SIM-CARDS |4321 |8883111  
MX-SIM-CARDS |3193 |3291023  

表2

 Key   |Conversions |Final Conversions|Active Sims 
-----------------+------------+-----------------+----------- 
USA-SIM-CARDS |456   |43    |4 
USA-SIM-CARDS |65   |2    |1 
UK-SIM-CARDS  |123   |4    |3 
UK-SIM-CARDS  |145   |34    |5 

的目標是得到以下輸出;

Key   |Clicks |Impressions|Conversions|Final Conversions|Active Sims 
-------------+-------+-----------+-----------+-----------------+----------- 
USA-SIM-CARDS|55667 |544343  |521  |45    |5 
DE-SIM-CARDS |4563 |234829  |   |     | 
AU-SIM-CARDS |3213 |232242  |   |     | 
UK-SIM-CARDS |3213 |1333223 |268  |38    |8 
CA-SIM-CARDS |4321 |8883111 |   |     | 
MX-SIM-CARDS |3193 |3291023 |   |     | 

這一功能的最關鍵的部分包括基於轉化

話,我會想象我有一個內執行該聚集一起的第二個表。

謝謝。

回答

1

在兩個步驟中取本然後:

1)聚合所述第二表:

SELECT Key, sum(Conversions) as Conversions, sum("Final Conversions") as FinalConversions, Sum("Active Sims") as ActiveSims FROM Table2 GROUP BY key 

2)使用,作爲一個子查詢/派生表接合到第一個表:

SELECT 
    t1.key, 
    t1.clicks, 
    t1.impressions, 
    t2.conversions, 
    t2.finalConversions, 
    t2.ActiveSims 
From Table1 t1 
    LEFT OUTER JOIN (SELECT Key, sum(Conversions) as Conversions, sum("Final Conversions") as FinalConversions, Sum("Active Sims") as ActiveSims FROM Table2 GROUP BY 2) t2 
     ON t1.key = t2.key; 

作爲一種替代方案,您可以加入,然後再進行分組,因爲沒有任何需要彙總兩次或任何東西:

SELECT 
    t1.key, 
    t1.clicks, 
    t1.impressions, 
    sum(Conversions) as Conversions, 
    sum("Final Conversions") as FinalConversions, 
    Sum("Active Sims") as ActiveSims 
From Table1 t1 
    LEFT OUTER JOIN table2 t2 
     ON t1.key = t2.key 
GROUP BY t1.key, t1.clicks, t1.impressions 

這裏唯一另外一件重要的事情是,我們使用了一個LEFT OUTER JOIN,因爲我們希望Table1中的所有記錄和Table2中與該鍵匹配的所有記錄。

+0

太好了,謝謝。 –

相關問題