本题与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不是唯一的办法。

京公网安备 11010502036488号