原始資料:
嘗試找出最大值,但是出現了一些問題,名字和salary對應不上。
明明是jim的工資9000,但是這裡輸出的是joe,why?,看了下面這個帖子:
自己寫的正確答案思路:先找出最大工資記錄,然後匹配回原表,這樣就不會出錯了;接下來與第二張表進行連線,把部門名稱得到;
下面貼出官方解法,思路基本一樣
方法:使用 join 和 in 語句
演算法因為 employee 表包含 salary 和 departmentid 字段,我們可以以此在部門內查詢最高工資。
select
departmentid, max(salary)
from
employee
group by departmentid;
注意:有可能有多個員工同時擁有最高工資,所以最好在這個查詢中不包含雇員名字的資訊。
| departmentid | max(salary) |
|--------------|-------------|
| 1 | 90000 |
| 2 | 80000 |
然後,我們可以把錶 employee 和 department 連線,再在這張臨時表裡用 in 語句查詢部門名字和工資的關係。
select
department.name as 'department',
employee.name as 'employee',
salary
from
employee
join
department on employee.departmentid = department.id
where
(employee.departmentid , salary) in
( select
departmentid, max(salary)
from
employee
group by departmentid);
| department | employee | salary |
|------------|----------|--------|
| sales | henry | 80000 |
| it | max | 90000 |
184 部門工資最高的員工
employee 表包含所有員工資訊,每個員工有其對應的 id,salary 和 department id。id name salary departmentid 1 joe 70000 1 2 henry 80000 2 3 sam 60000 2 4 max 90000 1 departmen...
leetcode 184 部門工資最高的員工
employee 表包含所有員工資訊,每個員工有其對應的 id,salary 和 department id。id name salary departmentid 1 joe 70000 1 2 jim 90000 1 3 henry 80000 2 4 sam 60000 2 5 max 900...
Lc184 部門工資最高的員工
employee 表包含所有員工資訊,每個員工有其對應的 id,salary 和 department id。id name salary departmentid 1 joe 70000 1 2 henry 80000 2 3 sam 60000 2 4 max 90000 1 departmen...