如何找到最大平均值

bqu*_*i56 17 sql oracle

我试图显示最高平均工资; 但是,我似乎无法让它发挥作用.

我可以获得要显示的平均工资列表:

select worker_id, avg(salary)
from workers
group by worker_id;
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试显示最大平均工资列表时:

select max (avg(salary))
from (select worker_id, avg(salary)
      from workers
      group by worker_id);
Run Code Online (Sandbox Code Playgroud)

它没有运行.我收到"无效标识符"错误.如何使用每个工人的平均工资来找到每个工人的最高平均工资?

谢谢.

kin*_*nak 30

由聚合函数(例如avg)生成的列通常会获得任意名称.只需为它使用别名,然后选择:

select max(avg_salary)
from (select worker_id, avg(salary) AS avg_salary
      from workers
      group by worker_id);
Run Code Online (Sandbox Code Playgroud)

  • 这将选择最高的平均工资,但没有说明分配给哪个 WorkerID。使用它也可以添加 ID [最大平均值](http://stackoverflow.com/questions/2439627/maximum-of-averages) (2认同)