我有一张桌子
汽车
id | person_id | mpg
------------------------
4 | 1 | 50
5 | 1 | 15
6 | 2 | 10
7 | 2 | 28
8 | 3 | 33
Run Code Online (Sandbox Code Playgroud)
我需要得到每个人的平均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
Run Code Online (Sandbox Code Playgroud)
有查询可以满足我的需求吗?
SELECT person_id, AVG(mpg) from car group by person_id;
Run Code Online (Sandbox Code Playgroud)
如果你想获得该组的平均值,你应该这样做:
SELECT AVG(mpg) from car;
Run Code Online (Sandbox Code Playgroud)
除非你真的想平均平均值,这对我来说似乎有点不确定:
SELECT AVG(average) from (SELECT person_id, AVG(mpg) as average from car group by person_id);
Run Code Online (Sandbox Code Playgroud)