今日刷题:
- 部门工资前三的所有员工
部门前三的所有员工

解题思路:
- 首先对所有同部门下的所有员工工资进行排名,获取到所有员工工资在自己部门的工资排名表
- 然后内连接的方式联合查询部门表获取部门名称(此处必须为内连接,因为员工表和部门表都有可能内容为空),并查询部门工资排名表中所有工资排名是前三的记录。
SQL代码:
select
d.Name as Department,t.Name as Employee,t.salary as Salary
from (
select
*,(
select
count(distinct e2.salary)
from
employee as e2
where
e1.departmentid = e2.departmentid and e1.salary < e2.salary
)
as
ran
from
employee as e1
)
as
t
join
department as d
on
t.departmentid = d.id and t.ran < 3
版权声明:本文为qq_35149975原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。