私はtable_Aを持っています:
id var1 var2
1 a b
2 c d
Table_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
2つのテーブルを実行するだけです。 (UNION ALL
ではなくUNION
を試しました—同じエラーです)。
すべてを別の単語に置き換えるだけです。予約キーワードのようです。例えば:
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;