题目如下:
思路:
根据题目描述,我们可以利用order by 进行排序,再用 limit 取出数第三的入职时间。我们需注意每个时间段都可能有多人同时入职,所以要对入职时间进行去重 distinct
limit 用法如下:
select * from table limit n offset m
limit 后的n代表要取查询结果的前n行
offset 后面的m代表偏移量(可省略,默认为0)
例如: limit 3 offset 5
代表 先偏移5行,再取前三行。即从第六行开始,取三行,也就是6,7,8行
limit 的优先级是较低的,需要等前面查询语句的操作都完成后,在完成其他条件后的表中进行操作。
例如:select distinct * from table where id = "1" limit 2 offset 4
该语句的执行顺序: where distinct limit
该题答案:
select * from employees where hire_date in
(select distinct hire_date from employees
order by hire_date desc limit 1 offset 2);