SQL中Group By的使用

1.概述

“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。(我们可以简单的理解为分类汇总)


2.有趣的用法

我们这里有一张表A。



3.简单的例子

示例1

Select 类别, Sum(数量) As 数量之和
From A
Group By 类别

返回结果如下表,实际上就是分类汇总。



4.Group By 和 Order By

示例2

Select 类别, Sum(数量) AS 数量之和
From A
Group By 类别
Order By Sum(数量) desc
返回结果如下表



注:SQL中默认为升序(ASC),想要降序需要添加desc


5.Group By中Select指定的字段限制

group by语句中select指定的字段必须是“分组依据字段”,其他字段若想出现在select中则必须包含在聚合函数中,常见的聚合函数如下表:



注:count(*)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入).  


distinct 列名,得到的结果将是除去值为null和重复数据后的结果


示例3:求各组平均值

Select 类别, Avg(数量)  AS  平均值
From A
Group By 类别

示例4:求各组记录数目

Select 类别, Count(*) AS 记录数
From A 
Group By 类别


6.Having与Where的区别


where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。


having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。

示例6

Select 类别, Sum(数量) As 数量之和 
From A
Group By 类别
Having Sum(数量) > 18


示例7:Having和Where的联合使用方法

Select 类别, SUM(数量)
From A
Where 数量 gt;8
Group By 类别
Having SUM(数量) gt; 10



评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨幂等

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值