解题思路
有可能有并列倒数第三的员工,所以用 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;