求一条SQL语句查出三年级学生的总成绩排名:学生姓名,老师姓名,所属班级,总分,排名

学生表a:编号,名称老师表b:编号,名称班级表c:编号,名称,年级学生班级表d:id,学生编号,班级编号老师班级表e:id,老师编号,班级编号成绩表f:id,考试科目,学... 学生表a:编号,名称 老师表b:编号,名称 班级表c:编号,名称,年级

学生班级表d:id,学生编号,班级编号 老师班级表e:id,老师编号,班级编号
成绩表f:id,考试科目,学生编号,考试成绩
展开
 我来答
buddhayes
推荐于2020-12-30 · 超过33用户采纳过TA的回答
知道答主
回答量:56
采纳率:100%
帮助的人:49.8万
展开全部
select
    学生表a.名称 as 学生姓名,
    老师表b.名称 as 老师姓名,
    班级表c.名称 as 所属班级,
    总分表g.总分 as 总分,
    rownum as 排名
from
(select
学生编号 as 学生编号,
sum(考试成绩) as 总分
from
成绩表f
group by 学生编号)总分表g
inner join
学生班级表d
on
学生班级表d.学生编号 = 总分表g.学生编号
inner join
老师班级表e
on
老师班级表e.班级编号 = 学生班级表d.班级编号
inner join
班级表c
on
班级表c.编号 = 老师班级表e.班级编号
inner join
学生表a
on
学生表a.编号 = 学生班级表d.学生编号
inner join
老师表b
on
老师表b.编号 = 老师班级表e.老师编号
where
班级表c.年级 = '三年级'
order by 总分表g.总分 desc

不同数据库取得rownum的方法不一样注意变下
追问
为什么排名的顺序是乱的
匿名用户
推荐于2017-09-02
展开全部
求一条SQL语句查出三年级学生的总成绩排名:学生姓名,老师姓名,所属班级,总分,排名
select
学生表a.名称 as 学生姓名,
老师表b.名称 as 老师姓名,
班级表c.名称 as 所属班级,
总分表g.总分 as 总分,
rownum as 排名
from
(select
学生编号 as 学生编号,
sum(考试成绩) as 总分
from
成绩表f
group by 学生编号)总分表g
inner join
学生班级表d
on
学生班级表d.学生编号 = 总分表g.学生编号
inner join
老师班级表e
on
老师班级表e.班级编号 = 学生班级表d.班级编号
inner join
班级表c
on
班级表c.编号 = 老师班级表e.班级编号
inner join
学生表a
on
学生表a.编号 = 学生班级表d.学生编号
inner join
老师表b
on
老师表b.编号 = 老师班级表e.老师编号
where
班级表c.年级 = '三年级'
order by 总分表g.总分 desc

不同数据库取得rownum的方法不一样注意变下
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式