我尝试了很多但没有成功,我只想显示学生列表中学生评分的最大平均值,如下表所示。

我的桌子


我想得到如下结果

预期产量


到目前为止我做了什么

SELECT MAX(a.Total_Qty) As TotalMax,a.studentId
FROM(
SELECT AVG( s.marks ) AS Total_Qty,s.studentId
FROM results s
WHERE s.stream = 'Form One'
GROUP BY s.studentId) AS a

最佳答案

内部查询将为您提供每个学生的平均值列表。
然后我们按照他们的平均得分排序(降序),最后我们得到前1名(限制1)

SELECT  a.studentId, a.Total_Qty as MaxAvg
FROM(

   SELECT AVG( s.marks ) AS Total_Qty,s.studentId
   FROM results s
   WHERE s.stream = 'Form One'
   GROUP BY s.studentId)

 AS a
 Order by a.Total_Qty Desc
 Limit 1


或者:

   SELECT AVG( s.marks ) AS Total_Qty,s.studentId
   FROM results s
   WHERE s.stream = 'Form One'
   GROUP BY s.studentId
   Order By AVG( s.marks ) Desc
   Limit 1

关于mysql - 寻找平均分最高的学生,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25681766/

10-11 04:50