SQL中group by的使用

使用group by可以对查询结果进行分组,但是group by需要和sql的聚合函数联合使用。sql的聚合函数包括以下这些

1.count()求符合条件的记录数

2.max()和min()求某一列的最大值和最小值

3.avg()求某一列的平均值

4.sum()求某一列的总和

group by的使用基本格式如下:

select 列名列表

from 表名

where 条件

group  by 列名

 

下面对group by的使用结合案例具体说明。

上图是表bookinfo,包含了 一系列的字段 ,现在我们按照出版社来对表进行分组统计

select publish as 出版社,count (publish) as 图书数量
from BookInfo
group by publish 

select publish as 出版社,count (publish) as 图书数量

这行代码首先将publish设置一个别名 出版社,然后 count(publish)as 图书数量,是将publish进行计数

from bookinfo 表示数据来源于表bookinfo

group by publish 表示对数据表按照publish字段进行分类,相同的publish为一类,count(publish)即为统计一共多少类。

执行结果如下图

再举个例子,同样是上面的bookinfo,我们对出版社分组,然后对每个出版社出版书籍的价格求平均值

select publish  '出版社',AVG(price) '平均价格'
from bookinfo 
group by publish 

执行结果如下

需要注意的是,select后面跟的列名,必须包含在聚合函数中,或者包含在group by子句中,比如上式中,字段名publish就包含在group by子句中,而price包含在avg聚合函数里。

group by还可以与having子句一起使用,对group by的内容进行限制,筛选出符合要求的内容

select publish  '出版社',AVG(price) '平均价格'
from bookinfo 
group by publish 
having avg(price)>55

需要注意的是having必须和group by配合使用不可单独使用,where是从表中筛选,having是从组中筛选

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值