首页 > 解决方案 > 合并两个表,包括 Athena (Presto) 中单个列中所有值的联合

问题描述

这是表1:

prof_id title id date0
1       Z     0  4/3
1       A     0  4/3
1       B     0  4/4
1       C     0  4/4
2       C     0  4/6
2       D     0  4/6
2       E     0  4/6

这是表2:

 title id date1
  A     0 1/2
  C     0 1/2
  D     0 1/3
  E     0 1/3
  H     0 1/5
  J     0 1/6

我想创建一个这样的表:

prof_id date0  title id date1
1       4/3    Z     0  NA
1       4/3    A     0  1/2
1       4/3    B     0  NA
1       4/4    C     0  1/2
2       4/4    C     0  1/2
2       4/6    D     0  1/3
2       4/6    E     0  1/3
NA      NA     H     0  1/5
NA      NA     J     0  1/6

在这种情况下,标题中的列将是标题。我对 SQL 很陌生,所以任何帮助都将不胜感激。

注意:我在 Amazon Athena 上运行它

标签: sqlprestoamazon-athena

解决方案


您可以尝试使用完全外连接:

SELECT
    t1.prof_id,
    t1.date0,
    COALESCE(t1.title, t2.title) AS title,
    COALESCE(t1.id, t2.id) AS id,
    t2.date1
FROM table1 t1
FULL OUTER JOIN table2 t2
    ON t1.title = t2.title AND
       t1.id = t2.id;

推荐阅读