查找入职员工时间排名倒数第三的员工所有信息

查找入职员工时间排名倒数第三的员工所有信息

http://www.nowcoder.com/questionTerminal/ec1ca44c62c14ceb990c3c40def1ec6c

题中说明了“员工入职的日期都不是同一天”,可以直接使用ORDER BY逆序排序,再使用LIMIT和OFFSET确定排名倒数第三的员工

SELECT *
FROM employees
ORDER BY hire_date DESC
LIMIT 1 OFFSET 2

如果有多个员工在同一天入职,可以使用子查询:

SELECT *
FROM employees
WHERE hire_date=
    (SELECT hire_date
    FROM employees
    ORDER BY hire_date DESC
    LIMIT 1 OFFSET 2)

也可以使用窗口函数,对入职时间计算排名序号,使用WHERE条件过滤:

SELECT emp_no,birth_date,first_name,last_name,gender,hire_date
FROM (
    SELECT *,DENSE_RANK() OVER (ORDER BY hire_date DESC) AS r
    FROM employees) AS a
WHERE r=3

这里要注意的是外面的查询不能使用*,因为子查询那里多了一个序号r,所以要把各个字段写出来

全部评论

相关推荐

看到这个内容真是闹麻了。。。。。。现在有了AI以后很多人面试都会作弊吗? 那对老老实实面试的人岂不是不公平....
重生之我要干前端:放宽心,作弊很明显的,面试官也不是傻子,而且这世上更多的肯定是依靠自己的知识的人,所以放宽心提升自己最重要
点赞 评论 收藏
分享
湫湫湫不会java:1.在校经历全删了2.。这些荣誉其实也没啥用只能说,要的是好的开发者不是好好学生3.项目五六点就行了,一个亮点一俩行,xxx技术解决,xxx问题带来xxx提升。第一页学历不行,然后啥有价值的信息也没有,到第二页看到项目了,第一个项目九点,第二个项目像凑数的俩点。总体给人又臭又长,一起加油吧兄弟
点赞 评论 收藏
分享
06-27 15:29
门头沟学院 Java
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务