sqlsever查询学生大于平均成绩后查询他的平均成绩嵌套
- 学习方法
- 2022-12-01 12:58:40
sql 嵌套查询选修"计算机文化学"且成绩高于此课程平均成绩的学生学号和成绩
由于不知道原题目,只能假设了,假设学号:No;成绩: score ;选修课程:kc; 从成绩表 sc中查询 select No,score from sc where kc='计算机文化学' and score >( select avg(score) from sc where kc='计算机文化学') 将假设的字段和表名换成拟题目中的字段和表名利用变量@score传递平均成绩,实现查询成绩高于平均成绩的学生信息,实现与嵌套查询相同的效果?
select @score := avg(成绩) from 成绩表; select * from 成绩表 where 成绩> @score; 第一条sql是吧平均值赋值给@score变量,第二条直接查询成绩大于变量值的记录,等价于查询大于平均分的记录sql语句查询所有大于某门课程平均成绩的id以及该生本门课程的成绩
SELECT*
FROMCourseScore
WHERECourse='数学'
ANDScore>(
SELECTAVG(Score)
FROMCourseScore
WHERECourse='数学'
)
更通用一些的:
SELECTA.*
FROMCourseScoreA
JOIN(--查询各科目的平均成绩
SELECTCourse,AVG(Score)Average
FROMCourseScore
GROUPBYCourse
)BONA.Course=B.Course
WHEREA.Course=B.Course
ANDA.Score>B.Average
ORDERBYA.Course,A.ScoreDESC--按科目、成绩(倒序)
sql语句问题。找出每个学生超过他选修课程平均成绩的课程号。
工具/材料:以Management Studio为例。
1、首先在桌面上,点击“Management Studio”图标。
2、然后在该界面中,点击“新建查询”按钮。
3、之后在该界面中,输入找出每个学生超过他选修课程平均成绩的课程号的SQL语句:selec t name,Cno from SCX WHERE grade >= (selec t AVG(grade) from SCY WHERE SCX.Cno = SCY.Cno);。
4、接着在该界面中,点击“执行”按钮。
5、最后在该界面中,显示每个学生超过他选修课程平均成绩的课程号。
SQL 查询 “查询学生成绩超过其选修课程平均成绩的课程号”
原来多表联合查询还可以用列与列之间进行比较。联合查询后,在where用选课表的成绩列 大于 选课表平均成绩。 student为学生表,class为课程表,selectclass为选课关系表。 select * from selectclass as t1, (select avg(sc.classreult)as pingjun,sc.classID from selectclass as sc group by classid )as t2 where t1.classID=t2.classID and t1.classReult>t2.pingjun展开全文阅读