題目


最開始我的思路是
用group by分組 在max(Salary)但是這樣查詢 工資最高且工資相同的只能輸出一個
然后換了個思路
首先根據部門分租,查詢每個部門工資的最大值
select DepartmentId , max(Salary) from Employee f group by f.DepartmentId
然后 在關聯兩張表,根據 部門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)
這樣查詢 只能查詢出一個部門的最高工資,經過各種查詢,檢查,過了半個小時,終于找到根源
就是查詢最大價格的時候
select DepartmentId , max(Salary) from Employee group by 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)
寫這篇博客 以祭奠此坑!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/197006.html
標籤:java
