使用连接到 Google 表格的大查询连接两个表

Xan Mei

我有两张表,前 3 列是相同的。我需要复制表 2 中未在表 1 中找到的所有列,并将它们粘贴到表 1 中的所有列之后,然后添加所有值。

这是表 1 的样子:

帐户 | 地理 | 网站 | 日期 | 数据1 | Data2
账户 1 法国 巴黎 100 200
账户 1 法国 南特 300 100
账户 3 西班牙 巴塞罗那 500 300
账户 4 菲律宾 宿务 50 100

这是表 2 的样子:

帐户 | 地理 | 网站 | 费用1 | 费用 2
账户 1 法国 巴黎 1000 500
账户 3 西班牙 巴塞罗那 400 600
账户 3 西班牙 马德里 800 100
账户 4 菲律宾 宿务 500 200

预期的结果是这样的:

帐户 | 地理 | 数据1 | 数据2 | 费用1 | 费用 2
账户 1 法国 400 300 1000 500
账户 3 西班牙 500 300 1200 700
账户 4 菲律宾 50 100 500 200

在 Big Query 中可以吗?

巴韦什·戈达萨拉

是的,在 BigQuery 或任何其他数据库中是可能的。只需阅读有关加入的信息。

查询看起来像

select  t11.Account, t11.Geo , t11.sum_data1, t11.sum_data2, t12.sum_expense1, t12.sum_expense2
from
(   
    select t1.Account, t1.Geo , sum(t1.Data1) sum_data1, sum(t1.Data2) sum_data2
    from table1 t1  
    group by t1.Account, t1.Geo) t11
inner join (    
    select t2.Account, t2.Geo , sum(t2.Expense1) sum_expense1, sum(t2.Expense2) sum_expense2
    from table2 t2  
    group by t2.Account, t2.Geo) t12
on t11.Account = t12.Account 
and t11.Geo = t12.Geo

根据您的要求,可以有许多连接变体:

  1. INNER:如果您确定所有帐户地理组合都存在于两个表中。
  2. FULL OUTER:如果您的两个表都有帐户条目,则其他表中不存在地理。
  3. LEFT OUTER:如果您希望 table1 成为驱动表,并且不想错过 table2 中不存在该帐户 + geo 的任何记录。
  4. RIGHT OUTER:与上面相同,但驱动表将是 table2。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章