“21天好习惯”第一期-3

数据库数据查询——复杂的单表查询——group by子句,having子句,聚集函数的使用。


三者之间的用法及关系:

group by子句将查询结果按某一列或多列的值分组,值相等的为一组。

而对查询结果分组的目的是为了细化聚集函数的作用对象。

分组后聚集函数将作用于每一个组,即每一组都有一个函数值。

如果分组后还要求按一定的条件对这些组进行筛选,最终只输出满足指定条件的组,则可以使用having短语指定筛选条件


例题:列出有二门以上课程优秀学生的学号及优秀门数。(优秀即分数在80及80分以上)

(1)首先使用group by子句对优秀学生的学号的查询结果分组。

select
sc.sno 学号,count(0) 优秀门数
from sc
where grade>=80
group by sc.sno

查询结果:

 

 (2)再使用having子句筛选出优秀成绩达两门以上的学生。

select
sc.sno 学号,count(0) 优秀门数
from sc
where grade>=80
group by sc.sno
having count(0)>2;

筛选结果:

 


sc表上篇文章已给出创建代码

网址链接:https://blog.csdn.net/qq_51896676/article/details/120938672?spm=1001.2014.3001.5501

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值