我有桌子_A:
id var1 var2
1 a b
2 c d
表_B:
id var1 var2
3 e f
4 g h
我想要的只是表格,组合:
id var1 var2
1 a b
2 c d
3 e f
4 g h
这是我的.hql:
CREATE TABLE combined AS
SELECT all.id, all.var1, all.var2
FROM (
SELECT a.id, a.var1, a.var2
FROM table_A a
UNION ALL
SELECT b.id, b.var1, b.var2
FROM table_B b
) all;
我直接从 Edward Capriolo 等人的《Programming Hive》第 112 页进行编码。
无论我尝试上述内容的表面上合理的变化,我得到的错误是
cannot recognize input near '.' 'id' ',' in select expression.
我尝试在表名和别名、星号之间使用
AS
,因为我想要两个表中的所有内容。同样的错误。我尝试过其他事情并遇到其他错误...我想做的就是UNION
两张桌子。 (我尝试过使用 UNION
而不是 UNION ALL
— 同样的错误)。
只需将所有替换为另一个单词即可。这似乎是一个保留关键字。例如:
CREATE TABLE combined AS
SELECT unioned.id, unioned.var1, unioned.var2
FROM (
SELECT a.id, a.var1, a.var2
FROM table_A a
UNION ALL
SELECT b.id, b.var1, b.var2
from table_B b
) unioned;
我有类似的查询工作。只需更改表名和列名即可。试试这个。希望这对您有帮助。
CREATE TABLE new_table AS
SELECT DISTINCT
id,
name
FROM
table1
UNION ALL
SELECT DISTINCT
id,
name
FROM
table2;
试试这个,它对我有用。
CREATE TABLE combined AS
SELECT id, var1, var2
FROM (
SELECT id, var1, var2
FROM table_A
UNION ALL
SELECT id, var1, var2
from table_B
) a;