这是SQL今日一题的第二篇文章

题目描述

查找入职员工时间排名倒数第三的员工所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天

所用到的表还是之前的employees表

CREATE TABLE `employees` (
`emp_no` int(11NOT NULL,  -- '员工编号'
`birth_date` date NOT NULL,
`first_name` varchar(14NOT NULL,
`last_name` varchar(16NOT NULL,
`gender` char(1NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));

思路

思路1:limit限定
思路2:子查询

答案

# 思路1
select * from employees 
order by hire_date desc limit 2,1

1、先order by降序排列
2、再limit限定,昨天说的limit m,n用到了,limit m,n表示从第m+1条数据开始,取n条数据,那么limit2,1就表示从第3条数据开始,取1条数据,这样就取了倒数第3条数据了。

用子查询的思路和上一题是一样的,也是假如hire_date有重复怎么办?如上图所示,如果用思路1取到的是第3条数据,也就是hire_date = 1995-05-23这一条,但实际上它排名倒数第二,所以要用子查询去重。

# 思路2
select * from employees where hire_date = 
(select distinct hire_date from employees 
 order by hire_date desc limit 2,1)

1、先对hire_date去重,然后order by降序limit限定取出真正的倒数第3条数据的hire_date
2、再子查询where子句限定,让hire_date 等于刚取出的倒数第三

distinct 关键字放在列名的前面,表示对某一列去重


©著作权归作者所有:来自51CTO博客作者mb5fe18f5282239的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 如何处理偏态数据?
  2. 数据分析都有哪些岗位?
  3. 什么是好的数据指标:精益数据分析
  4. 在剪贴板上读取/写入数据,太方便了吧!
  5. 44万条数据揭秘:如何成为网易云音乐评论区的网红段子手?
  6. 2000万条直播数据,揭秘斗鱼主播生存现状
  7. 破解X眼电影字体动态加密|凹凸玩数据
  8. Python爬取上万条大众点评数据,解读一线快餐品牌背后的秘密
  9. 放大招!耗时一个月,早起做了一个Python数据可视化APP?

随机推荐

  1. Android仿微信文章悬浮窗效果
  2. android 正三角,倒三角的实现代码
  3. android ui RelativeLayout中按扭平行显
  4. android 开发中常用尺寸
  5. android开发者网站
  6. Android (Go edition)
  7. 3D引擎--可移植到Android的开源的引擎
  8. Android Tutorials
  9. Android 类菜单栏 以及 透明居中排列
  10. Android 如何判断静音模式