トランプル日記184。部門で最も高い給料の従業員

トピック
ここに写真の説明を挿入
ここに写真の説明を挿入

最初は、
group by使用してmax(Salary)でグループ化することを考えていましたが、この方法では、最高の給与と同じ給与のクエリを1つだけ出力できます。

それから私の考えを変えました

まず、部門のサブリースに従って各部門の最大給与を照会し、
select DepartmentId , max(Salary) from Employee f group by f.DepartmentId
次に2つのテーブルを関連付けて、部門IDと価格に従って最大値を照会します。
ただし、SQLの最初のパスは次のように記述されます

select 
d.Name Department,
e.Name Employee,
Salary 
from
 Employee e 
 join
Department d on  e.DepartmentId=d.Id 
where 
(e.DepartmentId,e.Salary) in
(select DepartmentId , max(Salary) from Employee  group by e.DepartmentId)

このクエリは、部門の最大給与のみをクエリできます。さまざまなクエリと検査を行った後、30分後、最終的に根本原因
見つかります。最大価格をクエリする場合は
EmployeeグループからDepartmentId、max(Salary)を選択してe.DepartmentId
ください。価格は9000
なので、変更後のテストに合格しました

select 
d.Name Department,
e.Name Employee,
Salary 
from
 Employee e 
 join
Department d on  e.DepartmentId=d.Id 
where 
(e.DepartmentId,e.Salary) in
(select DepartmentId , max(Salary) from Employee f  group by f.DepartmentId)

このピットを記念してこのブログを書いてください!

おすすめ

転載: blog.csdn.net/wlj1442/article/details/109367863