数据库查询总成绩最高的三名学生的学号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库查询总成绩最高的三名学生的学号相关的知识,希望对你有一定的参考价值。
学生表:student 学号:number成绩表:score 成绩:scores
select student.number from student,score where student.id=score.id group by sum(scores) order by student.number DESC limit3; 参考技术A select top 3 ,student.number from student inner join score on student.id=score.id order by scores desc
Hive 基础测试
准备数据
- 学生表student
学号sid,姓名sname,性别ssex,年龄sage,系 department
95001,李勇,男,20,CS
95002,刘晨,女,19,IS
95003,王敏,女,22,MA
95004,张立,男,19,IS
95005,刘刚,男,18,MA
95006,赵丽,女,20,CS
- 成绩表score
学生编号sid,课程编号cid,成绩sscore
95001,1,81
95001,2,85
95001,3,88
95001,4,70
95002,1,90
95002,2,80
95002,3,90
95002,4,80
95003,1,70
95003,2,78
95003,3,65
95003,4,65
95004,1,70
95004,2,90
95004,3,85
95004,4,90
95005,1,70
95005,2,90
95005,3,70
95005,4,90
95006,1,70
95006,2,90
95006,3,70
95006,4,90
- 课程表course
课程编号cid,课程名cname
1,数据库
2,数学
3,信息系统
4,操作系统
需求1:创建三个外部表,并分别给外部表加载数据.
create external table student(
sid string,
sname string,
ssex string,
sage int)
row format delimited fields terminated by ',';
load data local inpath '/root/test/student.txt' into table student;
create external table score(
sid string,
cid string,
sscore int)
row format delimited fields terminated by ',';
load data local inpath '/root/test/score.txt' into table score;
create external table course(
cid string,
cname string)
row format delimited fields terminated by ',';
load data local inpath '/root/test/course.txt' into table course;
需求2:查询各课的学生人数。
select b.cname, a.num
from
(select cid ,count(*) num from score group by cid) a, course b
where a.cid=b.cid;
需求3: 查询每个学生的总成绩,并对总成绩进行降序排序,要求显示字段:学生名字,学生学号,学生总成绩
select st.sname ,st.sid ,sum(sc.sscore)
from student st
join score sc
on st.sid=sc.sid
group by st.sname, st.sid;
需求4:求总课程平均分最高的前三名学生
select sname,b.dr,b.avgScore
from(select a.sid,avgScore,dense_rank() over(order by avgScore desc) dr
from (select sid,avg(sscore) avgScore
from score group by sid) a) b,student
where b.sid = student.sid and dr<4;
以上是关于数据库查询总成绩最高的三名学生的学号的主要内容,如果未能解决你的问题,请参考以下文章
sql,查询每门课程最高分的学生的学号,课程号,成绩。再一张表里