分组后带条件查询的几种情况

1.要求输出课程号和选修人数,查询结果按照人数降序排列,若人数相同,按课程号升序排序

思路  :

第一步 

score表可知,需要由group by 课程号来进行查询课程号和选修人数

第二步:

查询结果按人数排列 count要求>2

对group by 的结果添加查询条件需要用关键词 having  即having count(学号)>2

第三步:

最后一步排序 需要利用关键词 order by 

总结:

综合上述分析sql语句可写成

SELECT
	课程号,
	COUNT(学号) AS 选修人数
FROM
	score
GROUP BY
	`课程号`
HAVING
	COUNT(`学号`) > 2
ORDER BY
	COUNT(学号) DESC,
	`课程号` ASC

2.查询两门以上不及格课程的同学的学号及其平均成绩

思路:

第一步:根据score表分析 先用group by 选出学号和平均成绩

第二步:

限制条件1-->不及格的课程

限制条件2-->两门以上[不及格课程] 

根据要求来不及格课程是查询的条件之一  而两门以上是对查询结果在做限制

where 关键词后筛选出不及格的课程  having 关键词筛选出两门以上的不及格课程

总结:

综合上述的分析得出符合要求的sql语句

SELECT
	学号,
	avg(成绩) AS 平均成绩
FROM
	score
WHERE
	`成绩` < 60
GROUP BY
	`学号`
HAVING
	COUNT(`课程号`) > 2

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值