问题有疑惑的地方在于 排名是按何种顺序来排:
- 1.如果按入职时间升序排列,则时间排名倒数第三的员工入职日期较晚 (默认这种)
- 2.如果按入职时间降序排列,则时间排名倒数第三的员工入职日期较早
但无论哪一种我们指定排序关键词就可以了。
考察点:
- 1.limit [偏移量,] 行数 ([] 中表示可选参数,可以省略)
- 2.标量子查询
解答
1.查找时间排名倒数第三的员工入职日期:
select distinct hire_date from employees order by hire_date desc limit 2,1;2.查找对应日期下的员工信息
select * from employees where hire_date = ( select distinct hire_date from employees order by hire_date desc limit 2,1);
附:用开窗函数 dense_rank() ,但是会多一列排序构造列
select *
from
(select *,
dense_rank() over (order by hire_date desc) as ranking
from employees ) as ep
where ranking = 3;
版权声明:本文为quyi0606原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。