我在SQL中编写此查询:
select MAX(AVG(salary) ) from employees group by department_id;
Run Code Online (Sandbox Code Playgroud)
首先,我会得到小组department_id,但接下来会发生什么?
Nik*_*tev 12
如果你有类似的东西
EmployeeId DepartmentId Salary
1 1 10
2 1 30
3 2 30
4 2 40
5 2 20
6 3 40
7 3 50
Run Code Online (Sandbox Code Playgroud)
分组后
DepartmentId AVG(Salary)
1 (10+30)/2 = 20
2 (30+40+20)/3 = 30
3 (40+50)/2= 45
Run Code Online (Sandbox Code Playgroud)
因此,下面的查询将返回45作为departmentId 3的最大平均工资
SELECT MAX(x.avg)
FROM ( SELECT AVG(salary)as avg FROM employees group by department_id)x;
Run Code Online (Sandbox Code Playgroud)
最有可能的是,取决于您的 RDBMS,这将需要通过子查询完成
select max(AveragesByDept.avgSalary)
from (
select avgSalary=avg(salary)
from employees
group by department_id
) AveragesByDept
Run Code Online (Sandbox Code Playgroud)