union和union all 的写法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了union和union all 的写法相关的知识,希望对你有一定的参考价值。

参考技术A union和union all 都是将两个相同列数的表 从上到下拼接起来:例如下图

使用union或者union all 之后的结果是

1、在mysql中都可以使用 union 或者union all,在hive sql中 只能使用union all

2、Union 使用后,将相同的两行或者几行数据去重保留一行,union all的使用结果是将相同的几行数据也保留下来,例如

3、Union使用时,需要列数相同,类型可以不同,union all 则都需要相同

4、Union和union all 的sql 基本写法

Select * from A

Union

Selec * from B

结果如表A1

Select * from A

Union all

Selec * from B

结果如表A2

5、Union和union all 的group by写法:求出每个人都有多少钱

Select

Name,

sum(Money)

from

(Select Name,sum(Money ) as m from C group by Money

Union

Select Name,Cote as m from D)tab

Group by Name

结果如图,union 在C表里面先进行了group by 求和,然后再拼接求和

Select

Name,

sum(Money)

from

(Select Name,sum(Money ) as m from C

Union all

Select Name,Cote as Money from D)tab

Group by Name

Union all 先进行拼接,再求和,它的结果也是上图

mysql union和union all的区别

mysql union和union all的区别如下:

比如说现在有一个集合A1,2,3,4,5和集合B5,6.7,8,9

union是求两个(或者多个)集合的并集(不允许重复元素),得到的集合是1,2,3,4,5,6,7,8,9;

union all也是求两个(或者多个)集合的并集(允许重复元素),得到的集合是1,2,3,4,5,5,6,7,8,9;

现在来执行以下两条sql:

select * from ( select id from B unionselect id from C)

select * from ( select id from B union all select id from C)

得到的结果如下:

参考技术A 在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。 MySQL中的UNION UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。...本回答被提问者采纳

以上是关于union和union all 的写法的主要内容,如果未能解决你的问题,请参考以下文章

oracle中union的用法

Union all和Union差别

union和union all的区别

union与union all的区别

union all 和 union

union all和union的区别 怎么使用