group By 和 Union 、 Union all的用法

时间:2022-09-20 14:29:28

我学习的是MySQL,学习写sql语句过程中遇到Group By 和 Union。

大家乐意看这两个链接,写的很好

Group By: www.cnblogs.com/rainman/archive/2013/05/01/3053703.html

Union : http://www.jb51.net/article/48933.htm

博主只是为了加强记忆才写博客的,基本上是盗用

首先我们来看什么是group By。

Group By 就是分组的意思,根据***分组

这是原始表

group By 和 Union 、 Union all的用法

select 类别, sum(数量) as 数量之和
from A
group by 类别

执行后

 group By 和 Union 、 Union all的用法

相信大家看出来了,这是按照类别分组,结果里只剩下abc三个类别,数量之和就是相同类别间的相加。

 

Union    Union all

union:联合的意思,即把两次或多次查询结果合并起来。
要求:两次查询的列数必须一致
推荐:列的类型可以不一样,但推荐查询的每一列,想对应的类型以一

Employees_China:
E_ID E_Name
01 Zhang, Hua
02 Wang, Wei
03 Carter, Thomas
04 Yang, Ming

 Employees_USA:

E_ID E_Name
01 Adams, John
02 Bush, George
03 Carter, Thomas
04 Gates, Bill

 

使用 UNION 命令实例

列出所有在中国和美国的不同的雇员名:

 
SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

结果:

E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Gates, Bill

 

使用 UNION ALL 命令实例

UNION ALL 命令和 UNION 命令几乎是等效的,不过 UNION ALL 命令会列出所有的值。

实例:
列出在中国和美国的所有的雇员:

SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA

结果

E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Carter, Thomas
Gates, Bill

 

 

 

 

 

 

 

 

 

 

 

 

 

 

888