MySQL-计算最大值子集的平均值
我有一个列为“日期、名称、分数”的表 我希望获得共享一个公共值(例如,相同日期或甚至名称)的行的最大值(分数),然后对它们进行平均,以给出一个数字,例如: ----日期--------姓名------分数MySQL-计算最大值子集的平均值,mysql,max,average,Mysql,Max,Average,我有一个列为“日期、名称、分数”的表 我希望获得共享一个公共值(例如,相同日期或甚至名称)的行的最大值(分数),然后对它们进行平均,以给出一个数字,例如: ----日期--------姓名------分数 2010年10月10日约翰·史密斯86 2010-06-05泰迪·琼斯71 2010年10月10日约翰·史密斯52 2010-06-05泰迪·琼斯68 2010-08-08 |乔·布洛格斯| 79 2010年10月10日约翰·史密斯46 所以在上面做一个最大(分数)会给我86分。不过,我想说的
2010年10月10日约翰·史密斯86
2010-06-05泰迪·琼斯71
2010年10月10日约翰·史密斯52
2010-06-05泰迪·琼斯68
2010-08-08 |乔·布洛格斯| 79
2010年10月10日约翰·史密斯46 所以在上面做一个最大(分数)会给我86分。不过,我想说的是: MAX(Score)给我86(10-10日的MAX)、79(08-08日的MAX)和71(06-05日的MAX),然后平均得到78.67。我希望这是可能的,而不必求助于临时表 感谢所有回复,谢谢
select Date, max(Score) as MaxScore
from MyTable
group by Date
如果还需要名称
,请执行以下操作
select m.Date, m.Name, m.Score
from (
select Date, max(Score) as MaxScore
from MyTable
group by Date
) mm
inner join MyTable on mm.Date = m.Date
and mm.MaxScore = m.Score
每日最大值的总平均值:
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
和每日最大值:
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
感谢您的回复,但一旦我到达那里,我将如何平均所有“最高”分数?