题目描述:
查找入职员工时间排名倒数第三的员工所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date NOT NULL,PRIMARY KEY (`emp_no`));
参考答案:
1 使用排序函数实现
select a1.*from employees a1inner join ( select emp_no, hire_date, row_number() over( order by hire_date desc) as hire_rk from employees ) a2on a1.emp_no = a2.emp_noand a2.hire_rk = 3;
2 使用分页函数limit结合offset实现
SELECT * FROM employeesORDER BY hire_date DESCLIMIT 1 offset 2;
题目来源:牛客网