トピック
最初は、
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)
このピットを記念してこのブログを書いてください!!