题解 | #查找入职员工时间排名倒数第三的员工所有信息# | SQL2

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

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

        本题与SQL1相似,必须考虑结果不只一个的情况,如果只用limit最终只会显示一条记录,为了解决这个问题,可以在子查询中加入distinct。流程如下:
        1、先把去重后的符合倒数第三条件的入职日期筛出;
        2、然后where条件让“入职日期 = 倒数第三的入职日期(所有)”;
        3、最后便能查出所有倒数第三入职的员工信息;

select
    emp_no,
    birth_date,
    first_name,
    last_name,
    gender,
    hire_date
from
    employees
where
    hire_date = 
    (
        select
            distinct hire_date
        from
            employees
        order by
            hire_date desc
        limit 2,1
    )
;

 
 

补充:经过尝试,子查询中用group by对hire_date进行分组后也可以完成需求,distinct不是唯一的办法。

全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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