我有两个表oldTable
,newTable
内容为:
oldTable
:
key value volume
======================
1 abc 10000
2 def 5000
newTable
:
key value volume
======================
1 abc 2000
2 def 3000
3 xyz 7000
我想创建一个总结两个表中的volume
s 的新表。即,新表应包含以下内容:
joined_table
:
key value volume
======================
1 abc 12000
2 def 8000
3 xyz 7000
我尝试了以下语句,但没有结果:
CREATE TABLE joined_table AS
SELECT key, value, volume
FROM (
SELECT IF(oldTable.key != NULL, oldTable.key, newTable.key) AS key,
IF(oldTable.value != NULL, oldTable.value, newTable.value) AS value,
IF(oldTable.volume AND newTable.volume, oldTable.volume + newTable.volume,
IF(oldTable.volume != NULL, oldTable.volume, newTable.volume)) AS volume
FROM(
SELECT oldTable.key, oldTable.value, oldTable.volume, newTable.key, newTable.value, newTable.volume
FROM newTable FULL OUTER JOIN oldTable ON newTable.key = oldTable.key
)alias
)anotherAlias;
但这给我一个错误的说法Query returned non-zero code: 10, cause: FAILED: Error in semantic analysis: Ambiguous column reference key
。
我尝试更改上述查询中的列名joined_table
,但它给了我同样的错误。关于如何实现这一目标的任何帮助?
另外,有什么方法可以将结果覆盖到现有表中,oldTable
而不是创建这个新表?