leetcode185 Department Top Three Salaries

SQL技巧精讲
本文介绍了一种使用SQL来找出每个部门薪资排名前三位的方法。通过嵌套查询和COUNT函数,可以有效解决不允许使用LIMIT和IN等问题。具体实现涉及到员工表与部门表的联合查询,并按薪资降序排列。

Employee表存储员工姓名、员工所在公寓、员工工资
Department表存储公寓id
评选出各个公寓的工资前三名的员工。

遇到的问题如下:

  • limit,in等语句不能用在嵌套select语句中,多封装一层就可以了
  • select子句如何访问外部的关系表,虽然可以直接访问外面第一层的,但是无法访问外面第二层的
select dep.name as Department,
       who.name as Employee,
       who.salary as Salary
from
     department as dep ,employee as who
     where dep.id=who.departmentid 
     and 2>=( select count(1) from (
        select distinct salary,departmentid from employee 
        )as dep_salary 
        where salary>who.salary and dep_salary.departmentid=dep.id
      )
order by Salary desc;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值