group By 和 Union 、 Union all的用法

2023-03-07,,

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

这是原始表

aaarticlea/png;base64,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" alt="" />

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

执行后

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJIAAABGCAIAAACotlrgAAAChUlEQVR4nO2ZUZKEIAxEvf+pvBn7YZWTIQkwQoLJdn9MWQrpwAsq41FKOaBwurCdGZV4XMAWT8AWUsAWUsAWUlbY7oD84GNMJPZdmMZgs+uA/vKWXI+tG937HY1WW3sK6Jnt2E6Sp1Zn2smGRRc8PzNeZ4uxifUo5kq7nPq6nEzmWc6nNL9iy+5VDUZjKoYS3rXa+DTRjgtzGG/Mc6giiAP5KYcu+NFUtzzb+Mm92A6ywsRkGiupmvrBBMTxbsPWHkOjeDdiq6z5r9aybdF25yXyU8K2GwBtkfFS3YhNbKxhm19n5zezV2ATByYO8pBqfDz1wWSe5ax155dEiy4zLcI2bFX0Rirvwaa5V91HarFrKoLXQjWC2L5J8uPu1S3YTjJ9tG+35niEQd93rTatauj5qtC6fWeSGWzG06iCsAVWS4zZaDMzzPXYXqXE4zrwdTukLmwloxKPC9jiCdhCCthCCthCCthCCthCCthWxqd7KmtfYHsenMbXjq2sHWx2yXO1Zcbmcw+hdp7xc94kbxfPKnGLn3+1Adu8L1bbmvhpsZXvL0Q+dqbB+ctkwmebvxKPC9ji6YMNCqaSuip3p2AiYAspYAspYAspYAspYAspYAspP2z3ZsNT1o5VfLqnsvbd8Feym0wdK0LasZW1g81t5uDi6fhfsDnfKoFtjVl14OboE7/6y9DUF9jWxwe2NY4+8d0GiGfbVHD+MplwA+CvxOMCtnj6YIOCqaSuyt0pmAjYQgrYQgrYQgrYQgrYQgrYQgrYpoLfO6jC9r52vgXYlkSu5tBhMoFtvUtCbD73EGpnHd+fWcH3tuUumbG5CdjWmDm4+DhqqBJiK7mebeJY3LD9AW9KNe/E3M1WAAAAAElFTkSuQmCC" alt="" />

相信大家看出来了,这是按照类别分组,结果里只剩下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

group By 和 Union 、 Union all的用法的相关教程结束。

《group By 和 Union 、 Union all的用法.doc》

下载本文的Word格式文档,以方便收藏与打印。