185 部門工資前三高的所有員工

2022-05-13 07:37:26 字數 1877 閱讀 2419

employee 表包含所有員工資訊,每個員工有其對應的工號 id,姓名 name,工資 salary 和部門編號 departmentid 。

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

| id | name | salary | departmentid |

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

| 1 | joe | 85000 | 1 |

| 2 | henry | 80000 | 2 |

| 3 | sam | 60000 | 2 |

| 4 | max | 90000 | 1 |

| 5 | janet | 69000 | 1 |

| 6 | randy | 85000 | 1 |

| 7 | will | 70000 | 1 |

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

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

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

| id | name |

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

| 1 | it |

| 2 | sales |

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

編寫乙個 sql 查詢,找出每個部門獲得前三高工資的所有員工。例如,根據上述給定的表,查詢結果應返回:

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

| department | employee | salary |

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

| it | max | 90000 |

| it | randy | 85000 |

| it | joe | 85000 |

| it | will | 70000 |

| sales | henry | 80000 |

| sales | sam | 60000 |

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

解釋:it 部門中,max 獲得了最高的工資,randy 和 joe 都拿到了第二高的工資,will 的工資排第三。銷售部門(sales)只有兩名員工,henry 的工資最高,sam 的工資排第二。

# write your mysql query statement below

select

department,employee,salary

from

(

select

d.name

asdepartment,

e.name

asemployee,

e.salary

assalary,

dense_rank()

over

( partition

by departmentid order

by salary desc

) as

cnt

from employee as e,department as

d

where e.departmentid=

d.id

)mwhere cnt<=

3

185 部門工資前三高的所有員工

employee 表包含所有員工資訊,每個員工有其對應的工號 id,姓名 name,工資 salary 和部門編號 departmentid department 表包含公司所有部門的資訊。編寫乙個 sql 查詢,找出每個部門獲得前三高工資的所有員工。例如,根據上述給定的表,查詢結果應返回 it 部...

185 部門工資前三高的員工

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 5 janet 69...

部門工資前三高所有員工

employee 表包含所有員工資訊,每個員工有其對應的工號 id,姓名 name,工資 salary 和部門編號 departmentid id name salary departmentid 1 joe 85000 1 2 henry 80000 2 3 sam 60000 2 4 max 9...