it-roy-ru.com

HiveQL UNION ALL

У меня есть таблица_А:

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;

Я пишу прямо со страницы 112 «Улей программирования» Эдварда Каприоло и др.

Ошибка, которую я получаю, независимо от того, какой якобы разумный вариант из вышеперечисленного я пробую, это «cannot recognize input near '.' 'id' ',' in select expression.»

Я попытался использовать «как» между именем таблицы и псевдонимом, звездочками, так как я хочу все из обеих таблиц. Та же ошибка Я пробовал другие вещи и получал другие ошибки ... Все, что я хочу сделать, - это UNION две таблицы. (Я попробовал UNION вместо UNION ALL - та же ошибка). 

12
dum_dum_dummy

Просто замени все на другое Слово. Кажется, это зарезервированное ключевое слово. Например:

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;
13
Lorand Bendig

У меня похожий запрос работает. Просто измените имя таблицы и имена столбцов. Попробуй это. Надеюсь, это поможет вам.

create table new_table as
select
distinct
id, name
FROM
table1
union all
select
distinct
id,name
from
table2 
;
1
kalpesh