首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL-查找最晚入职员工的所有信息

娜酱为了做数据分析而重启SQL之路,目前选取了牛客网进行编程练习。今天的练习是按照特定条件进行查找操作,涉及排序、子查询等。

题目描述

提交并通过的代码段

解题有以下重点:

1、【看输出】查询的结果是员工的所有信息 所以用 * 进行查询

2、【看约束条件】查询的目标员工是最晚入职的,所以翻译过来就是要找到hire_date最大的员工

3、【看扩展条件】“目前所有的数据里员工入职的日期都不是同一天” 也就是说不存在多条返回记录

而我提交并通过的代码如下:

select * from employees

where hire_date in (select max(hire_date) from employees);

以上写法是通过子查询获取hire_date最大的员工集,然后通过where子句提取在该数据集的员工数据。

这种写法的好处就是可以无视第三条扩展条件,无论是否有相同日期入职的员工都适用。

另一种写法可第三条扩展条件的理解,对hire_date通过order by进行desc(降序)排序然后通过limit 取首条记录,如 select * from employees order by hire_date desc limit 0,1;

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200608A0830R00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券