sql数据库建立学生表 求解:sql数据库检索各科成绩均大于等于该科平均成绩的学生的学号和姓名?
求解:sql数据库检索各科成绩均大于等于该科平均成绩的学生的学号和姓名?至少得有两个表,一个是学生档案表,假如叫stu,字段包括:name,code,分别表示姓名、学号,一个是成绩表gra,字段包括:
求解:sql数据库检索各科成绩均大于等于该科平均成绩的学生的学号和姓名?
至少得有两个表,一个是学生档案表,假如叫stu,字段包括:name,code,分别表示姓名、学号,一个是成绩表gra,字段包括:code,subid,num,分别表示学号,科目表主键,分数。因为查询结果不必展示科目名称,就不联查科目表了。
思路,先得到各科平均成绩,再查分数不小于平均成绩的学生。
查询语句如下:
select name,code
from stu
where code not in
(select gra.code from gra
left join (select subid,avg(num) as anum from gra group by subid) as g
on gra.subid=g.subid
where g.anum>gra.num)