184 部門工資最高的員工

2021-09-29 03:48:06 字數 1446 閱讀 6317

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            |

+----+-------+--------+--------------+

department 表包含公司所有部門的資訊。

+----+----------+

| id | name     |

+----+----------+

| 1  | it       |

| 2  | sales    |

+----+----------+

編寫乙個 sql 查詢,找出每個部門工資最高的員工。例如,根據上述給定的**,max 在 it 部門有最高工資,henry 在 sales 部門有最高工資。

+------------+----------+--------+

| department | employee | salary |

+------------+----------+--------+

| it         | max      | 90000  |

| sales      | henry    | 80000  |

+------------+----------+--------+

思路:簡單的查詢新增 group by departmentid 可以得到部分結果,

但是,每個部門最高工資可能不止乙個人,所以說還需要注意這種情況,

外部再加一次查詢,把上面group by 查到的結果作為 in 的結果集

select 

department.name as department,

employee.name as employee,

salary

from employee,department

where

employee.departmentid=department.id and

(employee.departmentid,salary) in (

select departmentid,max(salary)

from employee

group by departmentid

)

184 部門工資最高的員工

原始資料 嘗試找出最大值,但是出現了一些問題,名字和salary對應不上。明明是jim的工資9000,但是這裡輸出的是joe,why?看了下面這個帖子 自己寫的正確答案思路 先找出最大工資記錄,然後匹配回原表,這樣就不會出錯了 接下來與第二張表進行連線,把部門名稱得到 下面貼出官方解法,思路基本一樣...

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...