Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MYSQL中返回总分最高的学生姓名_Mysql - Fatal编程技术网

在MYSQL中返回总分最高的学生姓名

在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

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 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想要“最高平均值”的最高分