本题与SQL1相似,必须考虑结果不只一个的情况,如果只用limit最终只会显示一条记录,为了解决这个问题,可以在子查询中加入distinct。流程如下:
1、先把去重后的符合倒数第三条件的入职日期筛出;
2、然后where条件让“入职日期 = 倒数第三的入职日期(所有)”;
3、最后便能查出所有倒数第三入职的员工信息;
select emp_no, birth_date, first_name, last_name, gender, hire_date from employees where hire_date = ( select distinct hire_date from employees order by hire_date desc limit 2,1 ) ;
补充:经过尝试,子查询中用group by对hire_date进行分组后也可以完成需求,distinct不是唯一的办法。