私は関係インストラクター(ID、名前、dept_name、給料)を持っています。
平均給与が最も高い部門の名前を見つけるにはどうすればよいですか?
HAVING句の仕事のように見えます
これでうまくいきますか?
select top 1 id, name, avg (salary)
from instructor
group by id, name
order by avg (salary) desc
これにより、2 つの部署の平均給与が同じ場合に両方が取得されます。これが必要ない場合は、rownum=1 を使用してください。
with averages as (select dept_name,avg(salary) aver from instructor group by dept_name)
select dept_name
from averages
where aver = (select max(aver) from averages)
homeworkタグがあるので詳しくは説明しませんが、関数と節を調べてAVG
くださいGROUP BY
。
select top 1 dept_name, avg(salary) as AvgSalary
from instructor
group by dept_name
order by AvgSalary desc