184 部門工資最高的員工

2021-10-08 12:58:05 字數 1927 閱讀 7914

原始資料:

嘗試找出最大值,但是出現了一些問題,名字和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...