group By 和 Union 、 Union all的用法

我学习的是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 就是分组的意思,根据***分组

这是原始表

1
2
3
select 类别, sum(数量) as 数量之和
from A
group by 类别
执行后

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

Union Union all

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

1
Employees_China:
1
2
3
4
5
E_ID E_Name
01 Zhang, Hua
02 Wang, Wei
03 Carter, Thomas
04 Yang, Ming
Employees_USA:

1
2
3
4
5
E_ID E_Name
01 Adams, John
02 Bush, George
03 Carter, Thomas
04 Gates, Bill

使用 UNION 命令实例

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

1
2
3
SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA
结果:

1
2
3
4
5
6
7
8
E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Gates, Bill

使用 UNION ALL 命令实例

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

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

1
2
3
SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA
结果

1
2
3
4
5
6
7
8
9
E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Carter, Thomas
Gates, Bill

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值