合并两个表,包括 Athena (Presto) 中单个列中所有值的联合
Merging two tables including the union on all values in a single column in Athena (Presto)
这里是table1:
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
这是table 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
我想创建一个 table 这样的:
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 上运行这个
尝试以下操作。这是 ANSI,因此应该适用于任何主要的 DBMS:
SELECT a.prof_id, a.date0, b.title, b.id, b.datet1
FROM [table 1] a
RIGHT JOIN [table 2] b ON a.title = b.title
您可以尝试使用全外连接:
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;
这里是table1:
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
这是table 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
我想创建一个 table 这样的:
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 上运行这个
尝试以下操作。这是 ANSI,因此应该适用于任何主要的 DBMS:
SELECT a.prof_id, a.date0, b.title, b.id, b.datet1
FROM [table 1] a
RIGHT JOIN [table 2] b ON a.title = b.title
您可以尝试使用全外连接:
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;