您的位置:首页 > 职场人生

面试题:查询部门工资排前三的员工信息

2015-08-28 14:54 519 查看
难度:难

表Employee:

+----+-------+--------+--------------+
| Id | Name  | Salary | DepartmentId |
+----+-------+--------+--------------+
| 1  | Joe   | 70000  | 1            |
| 2  | Henry | 80000  | 2            |
| 3  | Sam   | 60000  | 2            |
| 4  | Max   | 90000  | 1            |
| 5  | Janet | 69000  | 1            |
| 6  | Randy | 85000  | 1            |
+----+-------+--------+--------------+


表Department:

+----+----------+
| Id | Name     |
+----+----------+
| 1  | IT       |
| 2  | Sales    |
+----+----------+


写一段SQL查询各部门收入前三位的员工信息,返回结果如下:

+------------+----------+--------+
| Department | Employee | Salary |
+------------+----------+--------+
| IT         | Max      | 90000  |
| IT         | Randy    | 85000  |
| IT         | Joe      | 70000  |
| Sales      | Henry    | 80000  |
| Sales      | Sam      | 60000  |
+------------+----------+--------+


答案:

Select a.Name as Department, b.Name as Employee, b.Salary
from Department a, Employee b
where b.DepartmentId = a.Id and (
Select count(distinct Salary) From Employee where DepartmentId=a.Id and Salary > b.Salary
)<3
order by Department
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: