hive union all 使用,hiveunion


功能:将两个表中的 相同的字段拼接到一起 测试:
create external table IF NOT EXISTS temp_uniontest_ta
(
a1 string,
a2 string
)
partitioned by (dt string)
row format delimited fields terminated by '\t'
stored as textfile;
ALTER TABLE temp_uniontest_ta ADD IF NOT EXISTS PARTITION (dt = '2014-10-13') location '/temp/unionTest/ta/';
a1	a2	2014-10-13
b1	b2	2014-10-13
c1	c2	2014-10-13

create external table IF NOT EXISTS temp_uniontest_tb
(
a1 string,
a2 string
)
partitioned by (dt string)
row format delimited fields terminated by '\t'
stored as textfile;
ALTER TABLE temp_uniontest_tb ADD IF NOT EXISTS PARTITION (dt = '2014-10-13') location '/temp/unionTest/tb/';
d1	d2	2014-10-13
e1	e2	2014-10-13

select * from 
(
select a1,a2 from temp_uniontest_ta where dt = '2014-10-13'
union all
select a1,a2 from temp_uniontest_tb where dt = '2014-10-13'
)tmp;

a1	a2
b1	b2
c1	c2
d1	d2
e1	e2











sql 中union all有什用法

就是把2个具有相同列及数据类型的 结果 放到一起显示,并且不去重。

select a,b,c from table1

union all

select ca,cb,cc from table2
 

什情况下用union?什情况下用union all?

union与union all的区别是:
前者会把两个记录集中相同的记录合并,而后者不会,性能上前者优。如此一说,你知道什么时候用Union什么时候用Union All了吧。
当确认多个记录集不会存在相同记录,或者有可能有相同记录但明确要合并的,用Union
即使有相同记录也不合并的,用Union All
 

相关内容