比较难的SQL语句?????

zhegong 2006-07-12 05:37:30
stud: stud_id, name, class_id, bithdate, age
class: class_id, name, create_date
course: course_id, name, teacher
score: course_id, stud_id, score


问题1:按班级统计每门课程的平均成绩、最高成绩、最低成绩。
包括: 班级名称、课程名称、平均成绩、最高成绩、最低成绩

问题2: 统计每门课程的最高成绩、最低成绩、最高成绩的学生姓名和所在班级、最低成绩的学生姓 名和所在班级
...全文
129 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
正解了!
十一月猪 2006-07-13
  • 打赏
  • 举报
回复

Problem1 :
select b.name ,
c.name ,
avg(c.score) ,
max(c.score) ,
min(c.score)
from stud a ,class b , course c , score d
where a.class_id = b.class_id
and a.stud_id = d.stud_id
and d.course_id = c.course_id
group by b.name , c.name

Problem2 :

select * ,
'min' as flag
from
( select c.name as kc,
d.score as fs,
a.name as xsxm,
b.name as bz
from stud a ,class b , course c , score d
where a.class_id = b.class_id
and a.stud_id = d.stud_id
and d.course_id = c.course_id
) d
where not exists(
select 1 from
( select c.name as kc,
d.score as fs,
a.name as xsxm,
b.name as bz
from stud a ,class b , course c , score d
where a.class_id = b.class_id
and a.stud_id = d.stud_id
and d.course_id = c.course_id
) e
where d.kc = e.kc and d.fs > e.fs
)

union all

select * ,
'max' as flag
from
( select c.name as kc,
d.score as fs,
a.name as xsxm,
b.name as bz
from stud a ,class b , course c , score d
where a.class_id = b.class_id
and a.stud_id = d.stud_id
and d.course_id = c.course_id
) d
where not exists(
select 1 from
( select c.name as kc,
d.score as fs,
a.name as xsxm,
b.name as bz
from stud a ,class b , course c , score d
where a.class_id = b.class_id
and a.stud_id = d.stud_id
and d.course_id = c.course_id
) e
where d.kc = e.kc and d.fs < e.fs
)
liuyinbo0109 2006-07-12
  • 打赏
  • 举报
回复
select b.name,c.Course_ID,最高分= max(score),最低分= min(score),平均分=avg(score)
from stud a,
class b,
course c,
score d
where a.class_id=b.class_id and c.course_id=d.course_id and a.stud_id=d.stud_id
group by b.name,c.course_ID
order by b.name
fcuandy 2006-07-12
  • 打赏
  • 举报
回复
区别就在,你的这个问题比起我发的地址里的那个问题做起来要多连个表.仅此而已.
fcuandy 2006-07-12
  • 打赏
  • 举报
回复
语句我不想写了,这几天这种写的很多了.请参考这个贴子.

http://community.csdn.net/Expert/topic/4874/4874196.xml?temp=.4765131

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧