SQL练习1:查找最晚入职员工的所有信息

SQL练习1:查找最晚入职员工的所有信息

题目链接:牛客网

题目描述
查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天(sqlite里面的注释为–,mysqlcomment)
表结构如下:

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`));

解法一
如果只是按照题目的要求来做的话,因为数据里员工入职的日期都不是同一天,那么只需要对hire_date列进行降序排列,取第一行数据即可。

SELECT * FROM employees
ORDER BY hire_date DESC LIMIT 1;

解法二
上面的解法只能应用在日期都不是同一天的情况下,如果最晚入职的有很多人,那么数据必然不准确,因此,我们可以根据子查询来筛选hire_date等于最晚日期的那些数据。

SELECT * FROM employees
WHERE hire_date = (SELECT MAX(hire_date) FROM employees);

猜你喜欢

转载自blog.csdn.net/qq_43965708/article/details/113186025