我想从db中获取学生列表,他们在每个班级中使用学生姓名获得最大人数。使用MySQL数据库。
我有如下表格,如学生、班级、成绩(不同年份的成绩)
表结构学生(student_id,student_name,class_id,地址),班级(class_id,class_name),结果(result_id,student_id,年份,分数)
我需要这样的清单
Student Name class Marks
Jon A-1 800
Steve B-1 789
select s1.student_name, c1.class_name, r1.marks
from student s1, class c1, results r1,
(select s2.class_id, max(r2.marks) marks
from results r2, student s2
where r2.student_id = s2.student_id
group by s2.class_id) agg
where r1.marks = agg.marks
and r1.student_id = s1.student_id
and s1.class_id = c1.class_id
and s1.class_id = agg.class_id
您可以使用子查询来过滤每班得分最高的学生:
select s.student_name
, c.class_name
, r.marks
from results r
join student s
on r.student_id = s.student_id
join class c
on c.class_id = s.class_id
where r.result_id =
(
select r2.result_id
from student s2
join results r2
on s2.student_id = r2.student_id
where c.class_id = s2.class_id
order by
r2.marks desc
limit 1
)
SQL Fiddle的真实例子。
编辑更正的代码,注释是正确的
试试这个SQL链接上的代码
本文向大家介绍在MySQL中为具有mark1和mark2记录的学生获取最大的个人分数?,包括了在MySQL中为具有mark1和mark2记录的学生获取最大的个人分数?的使用技巧和注意事项,需要的朋友参考一下 为此,请与GROUP BY子句一起使用。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 这是查询以获取具有标记1和标记2
问题内容: 因此,我有一个包含几个列表的列表,这些列表都首先包含三个字符串,然后是一个浮点数,例如: 如何制作一个返回最大值的函数(此处为9.1931)?我试过了 但这只是给我一个清单。 编辑:此外,以任何方式我可以获取值来自何处的索引?喜欢,来自哪个子列表? 问题答案: 循环浏览外部列表,然后选择每个子列表的最后一个元素: 最好将所有与函数相关的变量保留在范围内(将列表作为参数传递,并且不要通过
问题内容: 桌子: 我想获取UserId,每个UserId的max(Date)值。即,具有最新日期的每个UserId的值。有没有一种方法可以简单地在SQL中做到这一点?(最好是Oracle) 更新: 对于任何歧义,我们深表歉意:我需要获取所有UserIds。但是对于每个UserId,仅该用户具有最新日期的那一行。 问题答案: 这将检索其my_date列值等于该用户ID的my_date最大值的所有行
问题内容: 假设这样的3个表: teacher: student: class: 是否有SQL查询可为每位老师分配多少学生和班级? 结果应该是这样的: 问题答案: 尝试这样的事情:
问题内容: 我试过重新安装netbeans,试过重新安装java。我不确定发生了什么,但是我从每个类中都随机得到此异常,直到重新启动netbeans。有类似问题的人吗? 跑: 问题答案: 有时,NetBeans本地缓存目录会损坏(由于应用程序更早崩溃或发生其他/未定义的情况)。NetBeans开始表现异常。重新安装没有帮助,因为本地缓存目录并不总是被删除。 如果您100%确定您的应用程序没有路径问
输入格式 第一行包含一个整数n,它给出了当天提供的主题数量。 接下来的n行包含主题名称(是一个字符串),然后是该主题的24小时格式的开始和结束时间:hh:mm 例如: 注意:时间是以24小时的格式给出的,主题名称之间没有空格。 解释 计算机科学开始最早,结束最早,所以我们先取。在那之后,我们不能选物理,因为它在计算机科学结束之前就开始了。所以我们要上下一节课,也就是化学。但是化学之后我们不能上数学