sql 如何查询每个班级中的最高分

三张表学生表:姓名,学号,班级号成绩表:学号,成绩班级表:班级号,班级名称现在需要查询每个班级中的最高分请问该怎么写?比如说如果有三个班级,那应该是3条记录.不是查询一个... 三张表
学生表:姓名,学号,班级号
成绩表:学号,成绩
班级表:班级号,班级名称
现在需要查询每个班级中的最高分
请问该怎么写?
比如说如果有三个班级,那应该是3条记录.
不是查询一个班级的最好分!
班级中的最高分也就意味着得到的记录中就班级名称和分数!
展开
 我来答
悦己文化
高粉答主

2018-09-12 · 人群里也是很寂寞的。
悦己文化
采纳数:690 获赞数:51713

向TA提问 私信TA
展开全部

具体代码如下:

select 班级名称,分数=MAX(成绩)
from 

学生表 s join 班级表 c 

on s.班级号=c.班级号

join 成绩表 sc 

on s.学号=sc.学号

group by 班级名称

扩展资料:

SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。

最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)。 SQL INNER JOIN 从多个表中返回满足 JOIN 条件的所有行。

不同的 SQL JOIN,您可以使用的不同的 SQL JOIN 类型:

INNER JOIN:如果表中有至少一个匹配,则返回行

LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行

RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行

FULL JOIN:只要其中一个表中存在匹配,则返回行

参考资料:

Oracle官方API接口-PL/SQL API

W3cSchool-SQL JOIN

风不停息ovo
高粉答主

2018-09-08 · 繁杂信息太多,你要学会辨别
知道答主
回答量:34
采纳率:100%
帮助的人:9408
展开全部

select
bbb.班级名称,
aaa.最高分
from
(
select
班级号,
max(成绩) as 最高分
(
select
班级号,
成绩
from  成绩表 a
left join 学生表 b
on a.学号=b.学号
)aa
group by 班级号
)

aaa left join 班级表 bbb on aaa.班级号=bbb.班级号

create table T(学号 varchar(10),班级 varchar(10),总分 int)
insert into T(学号,班级,总分)
select 'x_001','A',40 union all
select 'x_002','B',60 union all
select 'x_003','C',90 union all
select 'x_004','A',10 union all
select 'x_005','A',20 union all
select  'x_006','A',30 union all
select 'x_007','B',40 union all
select 'x_008','B',90 union all
select 'x_009','B',100 union all
select 'x_010','C',32 union all
select 'x_011','C',54 union all
select 'x_012','C',73 union all
select 'x_013','C',23

扩展材料:

1.一体化:SQL集数据定义DDL、数据操纵DML和数据控制DCL于一体,可以完成数据库中的全部工作。

2.使用方式灵活:它具有两种使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到C、C++、FORTRAN、COBOL、JAVA等主语言中使用。

3.非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”。

4.语言简洁,语法简单,好学好用:在ANSI标准中,只包含了94个英文单词,核心功能只用6个动词,语法接近英语口语。

参考资料来源:百度百科——sql

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
198901245631
2015-05-27 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1685万
展开全部
可以通过班级进行分组,分组函数“group by ”,可以通过max函数获取到某列的最大值。
sql:select class ,max(score) from tablename group by class;
解释:上面语句的意思就是说通过班级分组后,查询出所有的班级和班级中的最高分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wastelandxf
2010-03-09 · TA获得超过281个赞
知道小有建树答主
回答量:400
采纳率:25%
帮助的人:242万
展开全部
select
bbb.班级名称,
aaa.最高分
from
(
select
班级号,
max(成绩) as 最高分
(
select
班级号,
成绩
from 成绩表 a
left join 学生表 b
on a.学号=b.学号
)aa
group by 班级号
)aaa left join 班级表 bbb on aaa.班级号=bbb.班级号
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式