题目描述

获取当前(to_date=‘9999-01-01’)薪水第二多的员工的emp_no以及其对应的薪水salary
CREATE TABLE salaries (
emp_no int(11) NOT NULL,
salary int(11) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,from_date));

解题思路

有两种思路,个人认为第一个思路虽然难理解,但是不会存在bug;第二个思路好理解但是可能有问题。

思路1是先根据to_date条件选出最大的salary,然后去除最大的salary后,在剩下的薪水中选出最大的。

思路2是降序排列数组,然后使用limit偏移一个单位,可是这样默认薪水都不重复。如果最多的薪水有重复的,那么就是错的了。但是这个题目没有重复的。

AC代码

思路1地AC代码

SELECT emp_no, salary FROM salaries WHERE (to_date = '9999-01-01' AND salary IN (SELECT MAX(salary) FROM salaries WHERE (to_date = '9999-01-01' ANDsalary NOT IN (SELECT MAX(salary) FROM salaries WHERE (to_date = '9999-01-01'))))
)

思路2的AC代码

select emp_no,salary from salaries where to_date = '9999-01-01'
order by salary desc limit 1,1;

[SQL实战]之获取当前薪水第二多的员工的emp_no以及其对应的薪水salary相关推荐

  1. 《数据库SQL实战》获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary

    题目描述 获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary CREATE TABLE salaries ( emp_no int(11) ...

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

    该文章主要记录在学习SQL的过程,觉得比较好的一个SQL题,作为记录学习. 题目背景: 请你获取薪水第二多的员工的emp_no以及其对应的薪水salary, 若有多个员工的薪水为第二多的薪水,则将对应 ...

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

    原题连接: https://www.nowcoder.com/practice/c1472daba75d4635b7f8540b837cc719?tpId=82&&tqId=29770 ...

  4. 牛客网数据库SQL实战25—— 获取员工其当前的薪水比其manager当前薪水还高的相关信息

    牛客网数据库SQL实战25-- 获取员工其当前的薪水比其manager当前薪水还高的相关信息 题目描述 获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999 ...

  5. [SQL实战]之查找当前薪水排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不准使用order by

    题目描述 查找当前薪水(to_date='9999-01-01')排名第二多的员工编号emp_no.薪水salary.last_name以及first_name,不准使用order by CREATE ...

  6. SQL-18 查找当前薪水(to_date='9999-01-01')排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不准使用order by...

    题目描述 查找当前薪水(to_date='9999-01-01')排名第二多的员工编号emp_no.薪水salary.last_name以及first_name,不准使用order by CREATE ...

  7. 查找薪水第二多的员工基本信息

    题目描述查找当前薪水(to_date='9999-01-01')排名第二多的员工编号emp_no.薪水salary.last_name以及first_name,不准 使用 order by CREAT ...

  8. 数据库SQL实战11_获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date=‘9999-01-01‘, 结果第一列给出员工的emp_no, 第二列给出其manager

    题目 获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01', 结果第一列给出员工的emp_no, 第二列给出其manager的manager_ ...

  9. 【数据库SQL实战】获取员工其当前的薪水比其manager当前薪水还高的相关信息

    https://www.nowcoder.com/practice/f858d74a030e48da8e0f69e21be63bef?tpId=82&tqId=29777&rp=0&a ...

最新文章

  1. 为11.2.0.2 Grid Infrastructure添加节点
  2. Notepad++使用vs2015主题教程
  3. linux shell 获取当前正在执行脚本的绝对路径
  4. Linux下为文件增加列的shell脚本
  5. Timer的schedule和scheduleAtFixedRate方法的区别解析
  6. MySQL(2)数据库管理
  7. XLNet(Generalized Autoregressive Pretraining for Language Understanding) 论文笔记
  8. arcgis如何连接Oracle,arcgis直连oracle数据库
  9. Ajax.Net之数据类型
  10. appium+python 【Mac】Android夜神模拟器
  11. 如何写一手好 SQL!!!
  12. 系统架构之服务器架构图
  13. matlab zmax 光学仿真,基于ZEMAX的光栅干涉仪仿真
  14. 微软邮箱smtp服务器,微软hotmail免费邮箱申请(5G邮箱容量) 支持pop3、smtp
  15. ziheng -接小球游戏
  16. 笔记 :归纳总结 (一)
  17. Rust 编译模型之殇
  18. HBase的java代码开发(完整源码)
  19. 襄阳市2022年高新技术企业申报奖励补贴以及认定条件汇总!
  20. matlab如何实现动态显示,matlab 坐标图动画,动态显示数据

热门文章

  1. 可以判断用户打开页面次数吗?_看前端如何单枪匹马实现小程序页面级版本控制...
  2. python爬虫网络出错怎么办_python爬虫之headers处理、网络超时问题处理
  3. B - Frogger(最短路之多条最短路径中最大权值的最小值)
  4. tqdm模块不能单行输出问题
  5. 基于阿里云服务器使用宝塔面板搭建 Typecho 博客
  6. Altium AD20删除机械层MECH
  7. stm32驱动LTC6912程控放大器程序,PGA可编程增益放大器,可调增益运放电路
  8. ROS与Matlab协同进行运动控制
  9. leetcode877.StoneGame
  10. 【MySQL】一条查询语句在MySQL内部的执行过程