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

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

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,所以要把各个字段写出来

全部评论

相关推荐

06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

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