写在前面

SQL每日一题是用牛客网的sqlite库的题目进行深度讲解(感觉进度慢的小伙伴可以自行前往刷题),这个系列要开启日更计划,每日一题,一起进步学习。


题目描述

查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天

这个题目所用到的employees表的实例如下:


CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,  -- '员工编号'`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date NOT NULL,PRIMARY KEY (`emp_no`));

思路

思路1:降序排列取top1
思路2:子查询限定max

思路1有局限性,但这道题用思路1也可以通过,下面详细说说

答案:

# 思路1select * 

上面的代码思路是用limit限定对hire_date降序排列后取第一行,假如没有重复的hire_date的话,那么取出来的就是最晚入职的员工信息,当然这样写也能通过调试,因为这道题里明确说明了“员工入职日期都不是同一天”。

limit n 表示从第1条开始(第一条数据所在的行为0),取n条数据limit m,n 表示从m+1条开始(行m),取n条数据,如limit 1,1 表示从第2条数据开始,取1条,搭配order by使用效果更佳。所以在本题里,除了limit 1这种写法外,还可以写成limit 0,1

但实际案例中确实会存在同一天的情况,那又应该如何做呢?


如上图所示是我随便插入的3条数据,可以看到emp_no为10008和10009的hire_date相同且最晚。

# 思路2select * 

如上代码,这里用到了子查询,思路是:
1、先用max函数取出最大的hire_date
2、再用where子句限定,hire_date等于刚取出来的最大的hire_date
最后取出的结果如图:


每日一题,进步学习!


相关内容:

学习SQL:MySQL必知必会

对比Excel学习SQL(6):表连接

对比Excel学习SQL(5):分组和子查询

对比Excel学习SQL(4):计算字段

写给小白的SQL学习文章

猜你喜欢:

如何处理偏态数据?

数据分析应关注AARRR模型的哪些指标

泰坦尼克号数据分析

深入浅出数据分析

数据分析都有哪些岗位?

Python实现LRFM模型分析客户价值

为什么要学统计学:赤裸裸的统计学

@ 作者:可乐
@ 公众号/知乎专栏/头条/简书:可乐的数据分析之路
@加个人微信:data_cola,备注:进群,拉你入 可乐的数据分析群 和各行各业的小伙伴交流探讨数据分析相关内容

微信公众号

个人微信号

sql 取重复key中的第一条_SQL每日一题相关推荐

  1. oracle分组查询取第一条数据,160804、oracle查询:取出每组中的第一条记录

    oracle查询:取出每组中的第一条记录 按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info group b ...

  2. Oracle中多个数取最大值,怎么取重复字段中最大值

    怎么取重复字段中最大值,比如只要取busy_count_glc字段中重复数据的一条数据 11785          9156 2012102317 SQL> select  busy_coun ...

  3. 160804、oracle查询:取出每组中的第一条记录

    oracle查询:取出每组中的第一条记录 按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info  group ...

  4. oracle查询:分组查询,取出每组中的第一条记录

    按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info  group by type; 注意:select 后面 ...

  5. sql关联查询子表的第一条_SQLAlchemy(8)惰性查询

    10204 15.relationship 中惰性查询 1.试理解relationship(自己) MySQL 是一个关系型数据库,关系型数据库最关键的就是关系.SQLAlchemy 作为一层ORM ...

  6. 为什么this()和super()必须是构造函数中的第一条语句?

    Java要求,如果您在构造函数中调用this()或super(),则它必须是第一条语句. 为什么? 例如: public class MyClass {public MyClass(int x) {} ...

  7. [转载] 为什么this()和super()必须是构造函数中的第一条语句?

    参考链接: Java中的构造函数链接(带示例) Java要求,如果您在构造函数中调用this()或super(),则它必须是第一条语句. 为什么? 例如: public class MyClass { ...

  8. java super构造函数_Java为什么this()和super()必须是构造函数中的第一条语句?...

    Java要求,如果你在构造函数中调用this()或super(),则它必须是第一条语句.为什么? 例如: public class MyClass { public MyClass(int x) {} ...

  9. 求二叉树中的第一条最长路径长度,并输出最长路径上的节点

    #include <stdio.h> #define MaxSize 1000typedef struct BiTNode {int data;struct BiTNode *lchild ...

最新文章

  1. 什么?Redis 的 QPS 是 MySQL 的 100 倍?
  2. 网站建设技术方案_企业网站建设解决方案
  3. 【数据竞赛】AI在垃圾分类中的应用小侃(海华大赛获奖者系列分享一)
  4. 中国公司占据VVC专利贡献榜4席
  5. 设置activity不可返回
  6. WordPress Event Easy Calendar插件多个跨站请求伪造漏洞
  7. 二级c语言上机题库及解析,2013年计算机二级C语言上机题库及答案解析(3)
  8. pythongui界面小程序_python界面小程序
  9. 判断三维空间中三点是否共线
  10. aimesh r6400 开_r6900+r6300v2 aimesh 连接成功!点滴分享
  11. 小米note3的开发者选项在哪里?怎么进入开发者模式?如何显示布局边界?
  12. 时间轮(TimingWheel)
  13. ​新手网赚要避的几个坑,你知道吗?
  14. 大数据技术之HFDS
  15. css文字一半居左一半居右
  16. 手机性能测试指标及操作
  17. 微型计算机开不了机,联想C225微型计算机怎么开不起机呢?
  18. 育碧信条:AI 在手,天下我有
  19. 写魔兽改键时遇到的问题
  20. 数字IC设计入门书单

热门文章

  1. 上学路线 (Standard IO)
  2. 怎样提高团队管理能力5
  3. 【数据库】如何解决数据库附加失败问题
  4. qdebug重定向_每个Qter都该知道的qDebug
  5. java 全局变量 内存不回收_JAVA知识梳理:内存管理与垃圾回收机制
  6. qoq是什么意思的缩写_“yjgj他的pyq很zqsg”,90后从未觉得自己老,直到看到00后缩写的那一秒……...
  7. android 文件存储 集合,Android 文件存储的基本使用
  8. 内存泄漏MobX State Tree_[译]iOS Crash Dump Analysis 错误的内存崩溃
  9. 计算机共享用户名和密码是哪个文件夹,共享文件夹要输入用户名密码,微信密码在哪个文件夹...
  10. web服务器是如何维护,我们如何维护Web客户端和Web服务器之间的会话?