查詢部門工資前三高的員工資訊

2021-09-18 08:00:50 字數 616 閱讀 7882

select p2.name as department,p3.name as employee,p3.salary as salary

from employee as p3

left join department as p2

on p2.id = p3.departmentid 

where (

select count(distinct salary)

from employee as p4

where p3.departmentid = p4.departmentid

and p4.salary >= p3.salary

) <= 3 

order by departmentid,salary desc

第一點,上邊的sql中,子查詢要完成的功能就是要保證當前部門中大於或等於自己薪水的人的數量小於等於三個,換句話說就是保證了是當前部門薪水的前三

第二點,為了排除一種極端情況,就是假如當前部門的薪水前三中的第三個名恰巧有兩個人的情況,用distinct關鍵字,當然這是為了滿足只要薪水排第三就要顯示為第三名的需求,具體還要看需求是怎樣的。

若有更好的還請大牛們指教!

部門工資前三高所有員工

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

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

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

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