在mySQL中求平均值

在mySQL中求平均值,mysql,Mysql,我有一张桌子 汽车 我需要得到每个人的平均mpg,然后是整个团队的平均值 person 1 avg = (50 + 15) / 2 = 32.5 person 2 avg = (10 + 28) / 2 = 19 person 3 avg = 33 group average = 32.5 + 19 + 33 / 3 = 28.1 是否有一个查询可以满足我的需要?您不能在一个查询中解决此问题,但必须使用两个查询或一个查询来解决代码中的总体平均值 select person, avg(mpg)

我有一张桌子

汽车

我需要得到每个人的平均mpg,然后是整个团队的平均值

person 1 avg = (50 + 15) / 2 = 32.5
person 2 avg = (10 + 28) / 2 = 19
person 3 avg = 33

group average = 32.5 + 19 + 33 / 3 = 28.1

是否有一个查询可以满足我的需要?

您不能在一个查询中解决此问题,但必须使用两个查询或一个查询来解决代码中的总体平均值

select person, avg(mpg) from cat group by person

您无法在一个查询中解决此问题,但必须使用两个查询或一个查询来解决代码中的总体平均值

select person, avg(mpg) from cat group by person
如果您想获得该组的平均值,您可能应该这样做:

SELECT AVG(mpg) from car;
除非你真的想平均这些平均值,这对我来说有点可疑:

SELECT AVG(average) from (SELECT person_id, AVG(mpg) as average from car group by person_id);
如果您想获得该组的平均值,您可能应该这样做:

SELECT AVG(mpg) from car;
除非你真的想平均这些平均值,这对我来说有点可疑:

SELECT AVG(average) from (SELECT person_id, AVG(mpg) as average from car group by person_id);
带有ROLLUP的
修饰符将在结果集中添加一行,其中
person\u id
NULL
mpg\u avg
为整个结果集的平均值(MySQL>=4.1.1):

带有ROLLUP的
修饰符将在结果集中添加一行,其中
person\u id
NULL
mpg\u avg
为整个结果集的平均值(MySQL>=4.1.1):


不要将平均数平均化,因为你会失去平均数的权重。i、 e:10辆平均每加仑50英里的车和一辆平均每加仑10英里的车会给你30英里的总平均速度,这是非常错误的:)我不同意。两辆50英里/加仑的绿色车、两辆20英里/加仑的红色车和一辆10英里/加仑的黑色车有两种不同的结果:-平均每辆车的平均值:150/5=30英里/加仑-平均每辆车的平均值:(50+20+10)/3=26.667第一种选择如你所述,但不一定是你想要的!我将一个人的平均mpg与其他人的平均mpg进行比较,并将其与每个人的群体平均mpg进行比较。我不想让每加仑跑10-50英里的家伙歪曲结果。我希望他的平均成绩是50分,与拥有一辆10mpg赛车的家伙平均。不要平均,因为你会失去平均成绩的分量。i、 e:10辆平均每加仑50英里的车和一辆平均每加仑10英里的车会给你30英里的总平均速度,这是非常错误的:)我不同意。两辆50英里/加仑的绿色车、两辆20英里/加仑的红色车和一辆10英里/加仑的黑色车有两种不同的结果:-平均每辆车的平均值:150/5=30英里/加仑-平均每辆车的平均值:(50+20+10)/3=26.667第一种选择如你所述,但不一定是你想要的!我将一个人的平均mpg与其他人的平均mpg进行比较,并将其与每个人的群体平均mpg进行比较。我不想让每加仑跑10-50英里的家伙歪曲结果。我希望他的平均成绩是50分,和一辆10英里每加仑的赛车的平均成绩一样。
 person_id | mpg 
------------------
         1 | 32.5 
         2 | 19.0
         3 | 33.0
      NULL | 27.2