【问题标题】:SQL - Join multiple rows to a table and transpose into columnsSQL - 将多行加入表并转置为列
【发布时间】:2021-12-30 10:54:21
【问题描述】:

所以我有两个表如下:

机会:

Opp ID Opp Name Opp Owner
01 Opp 1 Gary
02 Opp 2 Trevor

机会拆分:

Opp ID Owner Split %
01 Gary 100%
02 Trevor 50%
02 Peter 50%

然后我希望能够像这样将拆分放入第一个表中

Opp ID Opp Name Opp Owner First Owner First Owner Split Second Owner Second Owner Split
01 Opp 1 Gary Gary 100% null null
02 Opp 2 Trevor Trevor 50% Peter 50%

我不擅长使用 SQL,所以任何帮助表示赞赏。

【问题讨论】:

    标签: sql join google-bigquery


    【解决方案1】:

    考虑以下方法

    select * from (
      select *, 
        row_number() over(partition by Opp_ID order by Split desc) pos
      from table_1 
      left join table_2 
      using (Opp_ID)
    ) pivot (
      min(Owner) as Owner, min(Split) as Split for pos in (1,2,3)
    )           
    

    如果应用于您问题中的样本数据 - 输出是

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多