我想在每门课程中获得最高分,包括该课程的标题和参加该课程考试的学生姓名。我有这些表格,第一个学生
课程表
我还做了一张表格,让学生在课程考试中通过分数与课程联系起来
那我怎么能质疑呢。
我使用带有课程id分区和考试分数desc的RANK()来获得排名。然后选择排名=1以获得排名的最高值。Windows函数对于这些类型的Qestion非常有用。
SELECT
A.[CourseId]
,A.[exam_mark]
,A.[name]
,A.[title]
FROM
(
SELECT
RANK() OVER (PARTITION BY [mark].[course_id] ORDER BY [mark].[exam_mark] DESC ) AS [rnk]
,[Courses].[id] AS [CourseId]
,[Courses].[title]
,[mark].[exam_mark]
,[students_].[name]
FROM mark
INNER JOIN students_
ON mark.student_id = students_.id
INNER JOIN Courses
ON mark.course_id = Courses.id
) AS A
WHERE A.rnk = 1
您可以使用窗口函数。一种方法是:
select . . . -- whatever columns you want
from (select sc.*,
rank() over (partition by course_id order by exam_mark desc) as seqnum
from student_courses sc
) sc join
students s
on sc.student_id = s.id join
courses c
on sc.course_id = c.id
where seqnum = 1;
我有下表 在这里,我有一个“学生”表,我想 从学生表中获取每个科目的最大分数的学生的姓名,如以下输出。
我正在做一个学生注册数据库项目。学生注册课程并获得成绩。有时一个学生重复一门课程,获得更好的成绩。我需要只使用最好的成绩来计算grade_point和学分的总和。所以对于每个在不同学期重复课程的学生,我必须确定最高的成绩是多少。emplid代表学生,course_id标识一门课程,学分是学分hr,Grade_point是字母等级的数值,术语代表学期课程... 下面是一个我正在努力完成的例子。 OP
本文向大家介绍现在有一个学生表,一个课程成绩表,请问,怎么找出学生课程的最高分数,谈一谈思路相关面试题,主要包含被问及现在有一个学生表,一个课程成绩表,请问,怎么找出学生课程的最高分数,谈一谈思路时的应答技巧和注意事项,需要的朋友参考一下 通过表关联查询,使用 MAX 函数
问题内容: 我有下表 在这里,我有一个“学生”表,我想 从该学生表中获取从每个学科获得满分的学生的姓名,例如以下输出。 问题答案: 您可以使用ROW_NUMBER函数仅返回每个主题的“最佳”行: SQL小提琴 MS SQL Server 2008架构设置 : 查询1 : 结果 :
我想使用ArrayList打印出学生的名字和学生的id。但是,我不知道如何做到这一点,因为在这个类中,我只能打印出名字的ArrayList或id的ArrayList。我在想也许使用另一个类来创建一个学生对象,但是我不确定如何做到这一点。
我使用的是MySQL8.0.23版本 给出的表格是:- 我想要得到每个城市各科最高分学生的完整数据 -- 我已经用过这个了,但是我还是不能看到那个学生的名字和id