MySQL数据实战题-(查询最晚入职员工的所有信息)

学习不做题实战的话,很多的知识点都无法顺畅地掌握清楚,前面几个入门题还是能很好地带入sql思维的。

有一个员工employees表简况如下:

 请你查找employees里最晚入职员工的所有信息,以上例子输出如下:

 复盘思考:这里是只需要查询最晚入职的员工的全部信息,所以搜索内容也做了简化,直接用

select * from employees 

就可以啦,然后寻找定位段落在hire_date ,了解到只要找到最大的日期值就能定位到最晚入职员工的信息。

select max(hire_date) from employees;

这里用到一个标量子查询,直接添加后面作为筛选条件。

select & from employees 
where hire_date = (select max(hire_date) from employees);

需要考虑的几点内容:1.虽然已经完成范例中的现象但是不能保证这个语句就可以一直正确,判断所有的信息。

2.确定的是,有可能最晚入职的员工有很多位,不能使用limit的限制语句进行限制。

3.这里可能还会有人想到,直接用hire_date 进行分类,然后升序好像就好了。

select * from employees
group by hire_date 
order by hire_date desc
limit 1;

这样运行也是可以的,算是一种骗过上帝的方法,首先对hire_date 进行分组,然后按照hire_date分类,寻找降序排列,理所当然上面的就是最晚入职的员工,限制只输出上面一行就可以啦。

暂时笔者还不知道如何进行一个分组的输出,前提是进行子查询查到最大分组,要不这样应该能方便很多,但是进行大量的数据筛选的时候,还是先选出最大值在进行查询要快速很多。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值