部門工資最高的員工

2021-08-29 03:50:58 字數 1849 閱讀 4158

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 |

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

解:

select d.name as department,e.name as employee, e.salary 

from employee as e,department as d

where e.departmentid = d.id and 

e.salary = (select max(salary) from employee as e2 where d.id = e2.departmentid)

記幾個問題:

1.表別名的用法,只要打上了表別名,就不再是這個表了。如果前後有兩個巢狀形式的select語句,因為是select肯定都要跟from某個表,前面一旦打上了別名,後面跟前面用的就真的不是乙個表了。

所以只要用了別名,都要看清作用範圍,沒有引入第二個select就一直有效,引入了另說。

2.select的巢狀用法:

sql中的兩個簡單巢狀:

(1)select *from table1  where name1>(select name2 from table2);

(2)select *,(select * from table2)as column_name  from table1;

(3)select *form (select name1 from table1 where id>3) as t1;

首先是前兩個,最大的區別就在於要提取的那一部分,表裡有沒有現成的,有現成的就先抽出來,然後在後面用where去控制這個範圍,如果沒有現成的,那就在一開始的時候select  (select)as  a      from table,在一開始的時候寫上有這麼個東西。

第三個就是在篩選過一遍的範圍裡面,再次進行篩選,記得中間那個select用括號套好,後面寫上as t

部門工資最高的員工

leecode的題目。關於in的應用。感覺很經典,這裡列出解題過程。employee 表包含所有員工資訊,每個員工有其對應的 id,salary 和 department id。sql如下 set names utf8mb4 set foreign key checks 0 table struct...

LeetCode SQL 部門工資最高的員工

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 求部門工資最高的員工

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