我有一个包含“日期、姓名、分数”列的表格。
我希望获得具有共同值(例如相同的日期或什至名称)的行的 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/