将平均函数放在where子句中

时间:2016-12-29 01:12:22

标签: sql oracle

我想显示收入高于平均工资的所有员工的员工编号,姓氏和工资,并按工资上涨的顺序对结果进行排序。但是,我一直在收到错误'这里不允许组功能'。我该怎么写呢?

select employee_id,last_name,salary from employees 
where salary > avg(salary)
order by salary;

2 个答案:

答案 0 :(得分:3)

使用AVG() OVER()窗口聚合函数

select * from
(
select employee_id,last_name,salary,avg(salary)over() as avg_salary from employees 
) e
where salary > avg_salary 
order by salary;

答案 1 :(得分:1)

select a.employee_id,a.last_name,a.salary from employees a 
where a.salary > (select avg(b.salary) from employees b) 
order by a.salary;