解题思路
有可能有并列倒数第三的员工,所以用 LIMIT 去处理不太好。
我们用表的自连接做笛卡尔积,然后比较员工 A 与其他员工 BCDEF... 的入职时间,用 COUNT() 进行计算比员工 A 入职晚的人数,若没有或有与员工 A 同时入职的人,那么得出的数就是 0,所以倒数第三个员工得出得数应该是 2。
代码实现
SELECT *
FROM `employees` t1
WHERE (
SELECT COUNT(*)
FROM `employees` t2
WHERE t2.hire_date > t1.hire_date
) = 2; 
京公网安备 11010502036488号