在MYSQL中返回总分最高的学生姓名
i、 e.一个名为students的表格(假设只有一个学生叫这个名字,例如,没有两个学生叫John Smith)和 学生姓名、学生分数、科目 假设桌子上有这个在MYSQL中返回总分最高的学生姓名,mysql,Mysql,i、 e.一个名为students的表格(假设只有一个学生叫这个名字,例如,没有两个学生叫John Smith)和 学生姓名、学生分数、科目 假设桌子上有这个 John Smith 40 maths bob grey 20 english anne hank 23 english John Smith 30 english anne grey 10 maths 我试图通过计算所有学生平均成绩的最大值来找到得分最高的学生 此处将选择最高平均值,但不选择具有该平均值的学生姓名: SELECT MA
John Smith 40 maths
bob grey 20 english
anne hank 23 english
John Smith 30 english
anne grey 10 maths
我试图通过计算所有学生平均成绩的最大值来找到得分最高的学生
此处将选择最高平均值,但不选择具有该平均值的学生姓名:
SELECT MAX(avgStudentScore)
FROM (SELECT AVG(studentScore) AS avgStudentScore FROM students GROUP BY studentName) t
thx如果您只需要名称,您可以执行以下操作:
select studentName, avg(studentScore) as avgStudentScore
from students
group by studentName
order by avgStudentScore desc
limit 1
这将只返回查询的第一行。由于它是按avgStudentScore
排序的,因此它将返回具有最高平均值的学生
上述解决方案是最简单、最快速的,但它不是唯一的解决方案。如果您想以“艰难的方式”(使用子查询)完成此操作,您需要做的是:
请注意,使用这种方法,最终结果可能不是唯一的(即,可能有一个或多个学生具有相同的平均值,该平均值最高)。如果您只需要名称,您可以执行以下操作:
select studentName, avg(studentScore) as avgStudentScore
from students
group by studentName
order by avgStudentScore desc
limit 1
这将只返回查询的第一行。由于它是按avgStudentScore
排序的,因此它将返回具有最高平均值的学生
上述解决方案是最简单、最快速的,但它不是唯一的解决方案。如果您想以“艰难的方式”(使用子查询)完成此操作,您需要做的是:
请注意,使用这种方法,最终结果可能不是唯一的(即,可能有一个或多个学生具有相同的平均值,该平均值最高)。如果您只需要名称,您可以执行以下操作:
select studentName, avg(studentScore) as avgStudentScore
from students
group by studentName
order by avgStudentScore desc
limit 1
这将只返回查询的第一行。由于它是按avgStudentScore
排序的,因此它将返回具有最高平均值的学生
上述解决方案是最简单、最快速的,但它不是唯一的解决方案。如果您想以“艰难的方式”(使用子查询)完成此操作,您需要做的是:
请注意,使用这种方法,最终结果可能不是唯一的(即,可能有一个或多个学生具有相同的平均值,该平均值最高)。如果您只需要名称,您可以执行以下操作:
select studentName, avg(studentScore) as avgStudentScore
from students
group by studentName
order by avgStudentScore desc
limit 1
这将只返回查询的第一行。由于它是按avgStudentScore
排序的,因此它将返回具有最高平均值的学生
上述解决方案是最简单、最快速的,但它不是唯一的解决方案。如果您想以“艰难的方式”(使用子查询)完成此操作,您需要做的是:
SELECT studentName, max( mark ) as maxMark FROM `student` GROUP BY studentName
使用此查询:
SELECT studentName, max( mark ) as maxMark FROM `student` GROUP BY studentName
使用此查询:
SELECT studentName, max( mark ) as maxMark FROM `student` GROUP BY studentName
使用此查询:
SELECT studentName, max( mark ) as maxMark FROM `student` GROUP BY studentName
那么同一个学生在表中会有多条记录?那么同一个学生在表中会有多条记录?那么同一个学生在表中会有多条记录?那么同一个学生在表中会有多条记录?您好,谢谢您的解决方案,但我想知道是否有一种方法可以编辑我的方式,使其也能工作?如果不是的话,还是谢谢你!:DHi谢谢你的解决方案,但我想知道是否有一种方法来编辑我的方式,使其工作以及?如果不是的话,还是谢谢你!:DHi谢谢你的解决方案,但我想知道是否有一种方法来编辑我的方式,使其工作以及?如果不是的话,还是谢谢你!:DHi谢谢你的解决方案,但我想知道是否有一种方法来编辑我的方式,使其工作以及?如果不是的话,还是谢谢你!:DOP想要“最高平均值”,您的查询将返回studentOP想要“最高平均值”的最高分,您的查询将返回studentOP想要“最高平均值”的最高分,您的查询将返回studentOP想要“最高平均值”的最高分,您的查询将返回studentOP想要“最高平均值”的最高分