好的网站开发自学网站,photoshop touch,建设网站服务费会计分录,dw做网站的所有流程1.概述 Hive官方提供了一种联合查询的语法#xff0c;原名为Union Syntax#xff0c;用于联合两个表的记录进行查询#xff0c;此处的联合和join是不同的#xff0c;join是将两个表的字段拼接到一起#xff0c;而union是将两个表的记录拼接在一起。 换言之#xff0c; jo…1.概述 Hive官方提供了一种联合查询的语法原名为Union Syntax用于联合两个表的记录进行查询此处的联合和join是不同的join是将两个表的字段拼接到一起而union是将两个表的记录拼接在一起。 换言之 join是用于左右拼接而union是用于上下拼接。
2.语法
select_statement UNION [ALL | DISTINCT] select_statement UNION [ALL | DISTINCT] select_statement ...UNION是将多个查询结果集合并到一个结果中。UNION与UNION ALL的区别是 union会对两个子查询的结果去重合并而union all不会对子查询结果去重处理。 注 Hive 1.2.0之前的版本仅支持UNION ALL其中重复的行不会被删除。Hive 1.2.0和更高版本中 union的默认从结果中删除重复行。使用可选的distinct关键字指定了删除重复行。使用可选的all关键字不会删除重复行结果包含select语句中的所有匹配行。 可以在同一查询中混合使用union all和union distinct。每个select语句返回的列的数量和名称必须相同否则报错。 3.使用案例
3.1 准备数据
test1表数据
idusernameds001zhangsan20240307002lisi20240307003wangwu20240307
test2表数据
idusernameds002lisi20240307003wangwu20240307004zhaoliu20240307
3.2 查询结果
UNION的查询结果
SELECT id,username
FROM test1
WHERE ds ${bizdate}
UNION
SELECT id,username
FROM test2
WHERE ds ${bizdate};idusername001zhangsan002lisi003wangwu004zhaoliu
UNION ALL 的查询结果
idusername002lisi003wangwu001zhangsan002lisi004zhaoliu003wangwu
4.总结
联合查询方式UNIONUNION ALL对重复结果的处理筛选掉重复的结果不会去除重复记录对排序的处理将两个结果合并后并返回会按照字段的顺序进行排序效率快慢总述不去重不排序去重并排序
UNION ALL不去重不排序直接原表合并。UNION先表合并、再去重、再排序。作用等价于 先distinct去重、再UNION ALL表合并、再order by排序。效率方面UNION是UNION ALL的3倍。数据量大时不建议直接用UNION建议先去重再UNION ALL。