玩命加载中 . . .

SQL学习笔记


1、查询各科成绩(courseNo)最高和最低的分,以如下的形式显示:课程号、最高分、最低分

select courseno 课程号, max(score) 最高分, min(score) 最低分 from scores group by courseno;

2、查询每门课程被选修的学生数

select courseno 课程号, count(courseno) 总数 from scores group by courseno; 

3、查询男生女生人数分别为多少

select sex 性别, count(sex) 人数 from students group by sex;

4、查询平均成绩大于60分学生的学号和平均成绩

-- 代码一:
select studentNo 学号, avg(score) 平均成绩 from scores group by studentNo having avg(score)>60;
-- 代码二:
select * from (select studentNo 学号, avg(score) 平均成绩 from scores group by studentNo) a where 平均成绩>60;

5、查询至少选修两门课程的学生学号(去重)

select studentNo from (select studentNo, count(courseNo) 总数 from scores group by studentNo) a where 总数>=2;

6、查询同名同姓学生名单并统计同名人数

select name, count(*) from students group by name;

7、查询不及格的课程并按课程号从大到小排列

select * from scores where score<60 order by courseNo desc;

8、查询每门课程的平均成绩,结果按平均成绩升序排序,平均成绩相同时,按课程号降序排列

select avg(score) 平均成绩 from scores group by courseNo order by 平均成绩 asc, courseNo desc;

9、检索课程编号为“0004”且分数小于60的学生学号,结果按分数降序排列

select studentNo from scores where courseNo='0004' and score<60 order by score desc;

10、统计每门课程的学生选修人数(超过2人的课程才统计,要求输出课程号和选修人数,查询结果按人数降序排序,若人数相同,按课程号升序排序)

select * from (select courseNo, count(courseNo) 总数 from scores group by courseNo order by 总数 desc, courseNo asc) where 总数>2;

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

-- 代码一:
select studentNo, 平均成绩 from (select avg(score) 平均成绩, count(studentNo) 总数 from (select * from scores where score < 60) group by studentNo) where 总数>2; 
-- 代码二:
select studentNo 学号, avg(score) 平均成绩 from scores where score<60 group by studentNo having count(courseNo)>2;

12、查询学生的总成绩并进行排名

select name *, sum(score) 总成绩 from scores group by studentNo order by desc;

13、查询所有课程中成绩小于60分学生的学号和姓名

select st.studentNo, st.name from students st right join scores sc on st.studentNo = sc.studentNo where score<60;

14、查询只选修了2门课程的全部学生的学号和姓名

select * from (select st.studentNo, st.name, count(st.studentNo) 课程总数 from students st left join scores sc on st.studentNo = sc.studentNo group by st.studentNo) where 课程总数=2;

文章作者: Jack Tim
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jack Tim !
评论
  目录