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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 如何查询每个班级中的最高分相关的知识,希望对你有一定的参考价值。

参考技术A

具体代码如下:

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

用sql语句,查询每个班级成绩排名前三名的学生姓名

1、首先在打开的SQL Server中,假设有两条数据中,包含有【张】,但是这个张一前一后,如下图所示。

2、此时就能利用Select和From语句,查询数据,如下图所示。

3、但是要查找姓名中包含有【张】,那么不能用等号,如下图所示。

4、因此一定要必须使用Like关键字,才能查询SQL的数据。

5、这个时候,如果单对【张】字后加个百分号是不允许的,这样只能查找姓张的数据。

6、如果想要前后都有关键字【张】,那么一定要在前后都加百分号,就能实现模糊查找姓名。

参考技术A 你的数据结构是怎么样的呢?
是否已经计算了总分
假设已经计算了总分
前三名所有记录 列可以自定义 (列出前3名成绩总分 3种主流数据库写法)
sqlserver数据库:
select top 3 from 成绩表 order by 总分 desc
mysql数据库:
select * from 成绩表 order by desc 总分 desc limit 3
oracle数据库:
select * from 成绩表 order by desc 总分 ROWNUM <= 3

如果说没有给出总分
需要先计算总分
select (语文+数学+。。。)as total top 3 from 成绩表 order by total desc
然后其他数据库自己灵活运用你自己所使用的数据库的上述方法追问

在Oracle中,本题是先把班级分组还是先按成绩排序

追答

先分组分组 然后再排序

参考技术B select top 3 * from 成绩 group by 班级 order by 成绩 参考技术C 思路是先分组后按成绩排序

以上是关于sql 如何查询每个班级中的最高分的主要内容,如果未能解决你的问题,请参考以下文章

SQL查找一个表里,每个班级的最高分。

用sql语句,查询每个班级成绩排名前三名的学生姓名

用sql语句,查询每个班级成绩排名前三名的学生姓名

SQL 查询为其他列中的每个唯一条目返回最高和最低

sql多表连接 班级号 是一个单独的表! 当要查询全部班级时候却显示不出来。。!! 困惑- -

sql server 中如何查询学生表中每位学生全部科目中最高分对应的那行数据呢? 急急急 !