外部联盟等效 - GBQ
Outer Union equivalent - GBQ
我已经看到外部联合在这个 post
中是如何工作的
我想知道如何在 Google Big Query 中实现类似的东西,因为当我尝试 运行 一个外部联合时,我只是得到一个错误(我认为是因为 GBQ 不支持外联合。
例如
Table1
+---+---+
| a | b |
+---+---+
| 1 | X |
| 2 | Y |
+---+---+
Table2
+---+---+
| b | d |
+---+---+
| U | 1 |
+---+---+
CREATE TABLE OuterUnionTable AS
SELECT * FROM Table1
OUTER UNION CORR
SELECT * FROM Table2
OuterUnionTable
+----+----+---+
| a | b | d |
+----+----+---+
| 1 | X | |
| 2 | Y | |
| | U | 1 |
+----+----+---+
看起来您正在寻找以下内容
select a, b, d
from `project.dataset.table1`
full outer join `project.dataset.table2`
using(b)
如果应用于您问题中的示例数据 - 输出为
您可以避免指定所有列 - 如下例所示(但在这种情况下您将无法控制列的顺序)
select *
from `project.dataset.table1`
full outer join `project.dataset.table2`
using(b)
如果您需要保留顺序 - 请参阅下文
select t1.*, t2.* except(b)
from `project.dataset.table1` t1
full outer join `project.dataset.table2` t2
using(b)
万一你真的需要union
- 你可以使用下面的
select a, b, null as d from `project.dataset.table1`
union all
select null as a, b, d from `project.dataset.table2`
我已经看到外部联合在这个 post
中是如何工作的我想知道如何在 Google Big Query 中实现类似的东西,因为当我尝试 运行 一个外部联合时,我只是得到一个错误(我认为是因为 GBQ 不支持外联合。
例如
Table1
+---+---+
| a | b |
+---+---+
| 1 | X |
| 2 | Y |
+---+---+
Table2
+---+---+
| b | d |
+---+---+
| U | 1 |
+---+---+
CREATE TABLE OuterUnionTable AS
SELECT * FROM Table1
OUTER UNION CORR
SELECT * FROM Table2
OuterUnionTable
+----+----+---+
| a | b | d |
+----+----+---+
| 1 | X | |
| 2 | Y | |
| | U | 1 |
+----+----+---+
看起来您正在寻找以下内容
select a, b, d
from `project.dataset.table1`
full outer join `project.dataset.table2`
using(b)
如果应用于您问题中的示例数据 - 输出为
您可以避免指定所有列 - 如下例所示(但在这种情况下您将无法控制列的顺序)
select *
from `project.dataset.table1`
full outer join `project.dataset.table2`
using(b)
如果您需要保留顺序 - 请参阅下文
select t1.*, t2.* except(b)
from `project.dataset.table1` t1
full outer join `project.dataset.table2` t2
using(b)
万一你真的需要union
- 你可以使用下面的
select a, b, null as d from `project.dataset.table1`
union all
select null as a, b, d from `project.dataset.table2`