MySQL - 计算出 MAX 值子集的 AVG

标签 mysql max average

我有一个包含“日期、姓名、分数”列的表格。

我希望获得具有共同值(例如相同的日期或什至名称)的行的 MAX(Score),然后再对它们进行平均得到一个数字,例如:

---- 日期 ------| -- 名称 -- |分数
2010-10-10 |约翰·史密斯 | 86
2010-06-05 |泰迪·琼斯 | 71
2010-10-10 |约翰·史密斯 | 52
2010-06-05 |泰迪·琼斯 | 68
2010-08-08 |乔布洛格斯 | 79
2010-10-10 |约翰·史密斯 | 46

所以在上面做一个 MAX(Score) 会给我 86。但是,我想要的是以下内容:

MAX(Score) 给我值 86(日期 10-10 的最大值)、79(日期 08-08 的最大值)和 71(日期 06-05 的最大值),然后我可以平均得到 78.67。我希望无需求助于临时表就可以做到这一点?

感谢所有回复,谢谢。

最佳答案

每日最大值的总平均值:

SELECT AVG(dailyMax) AS avgOfDailyMax
FROM (SELECT Date, MAX(Score) AS dailyMax FROM MyTable GROUP BY Date) as DailyMaxTable 

和每日最大值:

SELECT Date, MAX(Score) AS dailyMax
FROM MyTable
GROUP BY Date

关于MySQL - 计算出 MAX 值子集的 AVG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3962470/

相关文章:

mysql - 选择最大Mysql所在位置

SQL 在多个表中选择每个连接表中的最大日期

sql - 使用 sqlite 按行平均

excel - 如何将excel中两个单独工作表中的每个值平均到第三个工作表中

sql - 获取 TIME(7) 的平均值

java - java或python中范围的递归最大函数

mysql - 没有外键的连接表

c# - MySqlClient 结束流异常 : Fatal error when attempting to read past the end of the stream

java - 从我的 Android 应用程序 zxing 向我的在线 MySQL 数据库发送数据

php - 如何创建数字调查 android 应用程序和 php(服务器)?