这道SQL有一点...不一样?

原题目

从课程表(课程号,课程名) 学生表(学号,年龄,性别,课程号,分数)中 查询出平均分大于60分的学生的学号及课程成绩

最初尝试

一开始不太会做,直接在网络上搜索答案,找到的却只有<查询平均成绩大于60分的学生的学号和平均成绩>这样的题目答案

1SELECT 2 s_id, 3 AVG( s_score ) 4FROM 5 score 6GROUP BY 7 s_id 8HAVING 9 avg( s_score ) > 60
<hr>

单表操作,而且还和题意有差别,但是基本的语句形式是搭好的了

假设在这里也使用单表操作

1select 2 s.s_id , 3 s.s_score 4from 5 test2.student s 6where 7 s_id in ( 8 select 9 s.s_id 10 from 11 test2.student s 12 group by 13 s.s_id 14 having 15 avg(s.s_score) > 60);

SQL1 结果虽然没有问题,但是结果由于缺少学科的名字,不知道某一学生分数对应的学科是什么,是不是应该把学科名也一并查询出来,不然题目给的学科表感觉有点多余了。。。

最终解决

尝试用正常处理方式拆解为两步处理(设学生表为student,课程表为course)

1.求平均分大于60分的学生的学号

1select 2 s.s_id 3from 4 student s 5group by 6 s.s_id 7having 8 avg(s.s_score) > 60;

SQL2

2.求出一个学生的所有学科成绩(如:求01号学生的)

1select 2 s.s_id, 3 c.c_name, 4 s.s_score 5from 6 test2.course c 7join 8 test2.student s 9on 10 c.c_id = s.s_subjectNo 11where 12 s.s_id = '01';

SQL3

3.将两者组合得到最终结果

1select 2 s.s_id, 3 c.c_name, 4 s.s_score 5from 6 course c 7join 8 student s 9on 10 c.c_id = s.s_subjectNo 11where 12 s.s_id in ( 13 select 14 s.s_id 15 from 16 student s 17 group by 18 s.s_id 19 having 20 avg(s.s_score) > 60);

SQL4

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

SQL 经典题型解答(6)

SQL经典习题解答(6)23、统计各科成绩各分数段人数:课程编号,课程名称,\10085\,\8570\,\7060\,\060\及所占百分比SELECTt1.,t2.all_num,CONCAT(ROUND(t1.num/t2.all_num

SQL_50题

\1、查询“1001”课程比“1002”课程成绩高的所有学生的学号;selecta.Sfrom(selectS,scorefromscwhereC1001)a,(selectS,scorefromscwhereC1002)bwherea.scoreb.scoreanda.s

SQL题目

Student(S,Sname,Sage,Ssex)学生表      S:学号;Sname:学生姓名;Sage:学生年龄;Ssex:学生性别Course(C,Cname,T)课程表                   C,课程编号;Cname:课程名字;T:教师编号SC(S,C,score)成绩表              

SQL 查询:查询学生平均成绩

  编程萌新,因为遇到这么个SQL查询的问题:在一张表A里有如下字段:学生姓名、学科名、学科成绩。写一条SQL语句查出各科平均成绩并按学生姓名分组,按如下格式显示:学生姓名|语文|数学|英语。一开始遇到的时候挺懵的,有印象但是却忘了怎么写了,接下来就是查阅资料并亲自上手测试是否可行~  第一次代码修修改改如下,此时还是在只用一张表来查询(无法实现上述

Mysql 查询所有课程的成绩第2名到第3名的学生信息及该课程成绩

 查询所有课程的成绩第2名到第3名的学生信息及该课程成绩1\.查询课程ID为‘01’的课程的成绩第2名到第3名的学生信息及该课程成绩SELECT  d.,c.排名,c.s_score,c.c_idFROM  (SELECTa.s_id,a.s_score,a.c_id,@i:@i1AS排名FROMs