Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-计算最大值子集的平均值_Mysql_Max_Average - Fatal编程技术网

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

感谢您的回复,但一旦我到达那里,我将如何平均所有“最高”分数?