mysql - 查找平均分最高的学生

标签 mysql sql

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

我的 table
enter image description here

我想要得到如下结果

预期输出 enter image description here

到目前为止我做了什么

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/

相关文章:

php - 如何处理跨不同设备的 session ?

mysql - 创建约束以不在 Mysql 中插入重复值

MySQL 查询连接最大值

sql - PostgreSQL:如何有效地更改 psql 中的多个列?

mysql - 使用 WHERE 时在 SQL Join 中包含 NULL

mysql - 将从不同查询返回的行追加到一个查询中

MySQL - 选择行程次数最多但不重复的项目

PHP 检查多个变量的值是否已更改

c++ - 链接 MySQL C 连接器?

mysql - GAE Big Query - 使用日期时的掩码