alt

SQL

SELECT * FROM employees WHERE

hire_date = (SELECT DISTINCT hire_date FROM employees ORDER BY hire_date DESC LIMIT 2,1)

思路

1.使用 ORDER BY 根据入职时间降序

2.使用 LIMIT 取出倒数第三的时间

3.使用 DISTINCT 进行去重

注意点

题目可能存在时间重复的情况,如上图,倒数第二的时间重复了,那么直接 LIMIT 取出倒数第三时间,得到的结果不是我们需要的,使用 DISTINCT 进行去重

学习点

  1. 取出某某排名XX的数据

    第一反应要联想到 ORDER BY 函数进行排序

  2. LIMIT 函数的用法

    LIMIT 2,1 表示查询得到的结果记录,从第3条记录开始,取出1条记录,因为默认是从0开始的,所以2表示第3条

  3. DISTINCT 函数作用是去重

    需要去重,应该联想到,DISTINCT 函数和 GROUP BY 函数