当前位置:   article > 正文

分组后带条件查询的几种情况_group by 后面加条件

group by 后面加条件

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

思路  :

第一步 

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

第二步:

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

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

第三步:

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

总结:

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

  1. SELECT
  2. 课程号,
  3. COUNT(学号) AS 选修人数
  4. FROM
  5. score
  6. GROUP BY
  7. `课程号`
  8. HAVING
  9. COUNT(`学号`) > 2
  10. ORDER BY
  11. COUNT(学号) DESC,
  12. `课程号` ASC

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

思路:

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

第二步:

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

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

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

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

总结:

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

  1. SELECT
  2. 学号,
  3. avg(成绩) AS 平均成绩
  4. FROM
  5. score
  6. WHERE
  7. `成绩` < 60
  8. GROUP BY
  9. `学号`
  10. HAVING
  11. COUNT(`课程号`) > 2

 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号