题解 | #获取当前薪水第二多的员工的emp_no以及其对应的薪水salary#

获取当前薪水第二多的员工的emp_no以及其对应的薪水salary

http://www.nowcoder.com/practice/c1472daba75d4635b7f8540b837cc719

-- max嵌套
select e.emp_no,s.salary,e.last_name,e.first_name
from employees as e inner join salaries as s
    on e.emp_no = s.emp_no
where to_date = '9999-01-01'
and salary = (
    select max(salary) from salaries
    where to_date = '9999-01-01'
    and salary < (
        select max(salary)
        from salaries
        where to_date = '9999-01-01'
    )
);

-- 窗口函数
select b.emp_no,b.salary,e.last_name,e.first_name from
employees as e inner join 
(selcet emp_no,salary,dense_rank() over (partition by to_date order by salary desc) as rk
from salaries
where to_date = '9999-01-01') as b
on e.emp_no = b.emp_no
where rk = 2;

 -- 自连接和count函数计算排名
select e.emp_no,s.salary,e.last_name,e.first_name
from employees as e inner join salaries as s
    on e.emp_no = s.emp_no
where s.salary = 
    (
        select s1.salary
        from salaries as s1 join salaries as s2

        -- <=代表比某个薪水值小的分到一组
        on s1.salary <= s2.salary
        group by s1.salary
        having count(distinct s2.salary) = 2
    );






全部评论

相关推荐

11-28 16:00
已编辑
武汉理工大学 Java
想干测开的tomca...:这份简历是“短期项目硬堆中大型系统技术”的“技术炫技式造假模板”,槽点密集到能当反面教材: ### 1. 「项目时长」和「技术密度」严重脱节,造假痕迹焊死在简历上 两个项目时长分别是**3个月、2个月**,但堆了Spring AI、Elasticsearch、MinIO、Kafka、ShardingSphere、Docker、Sentinel等近20个中大型项目才用的技术——正常情况下,光把这些中间件的文档看完+环境搭好,3个月都不够,更别说实现“AI多轮对话、分库分表、RBAC权限、大模型调用”这些功能。 说白了:你这不是“做项目”,是把“后端技术栈清单”往项目里硬塞,明摆着“只调用了API,没碰过核心逻辑”。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务