2016-12-29 5 views
-1

私は、平均給与以上を稼いで昇給給与の順にソートしたすべての従業員の従業員番号、姓、給与を表示したかったのです。しかし、私はエラーが発生している 'グループ機能はここで許可されていません'。どうすればいいですか?where節のaverage関数の実装

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

答えて

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; 
+1

我々は、サブクエリの周りに()を必要としないのですか?私はちょうど@luisteijonの編集を提出しました。 – codeforester

+0

このスクリプトには '表現がありません'というエラーがあります –

+0

@ codeforesterによって編集されました –

3

使用AVG() OVER() Window集合関数

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