题目
SQL1 查找最晚入职员工的所有信息
描述
有一个员工employees表简况如下:
请你查找employees里最晚入职员工的所有信息,以上例子输出如下:
示例1
输入:
drop table if exists 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
));
INSERT INTO employees VALUES(10001,‘1953-09-02’,‘Georgi’,‘Facello’,‘M’,‘1986-06-26’);
INSERT INTO employees VALUES(10002,‘1964-06-02’,‘Bezalel’,‘Simmel’,‘F’,‘1985-11-21’);
INSERT INTO employees VALUES(10003,‘1959-12-03’,‘Parto’,‘Bamford’,‘M’,‘1986-08-28’);
INSERT INTO employees VALUES(10004,‘1954-05-01’,‘Chirstian’,‘Koblick’,‘M’,‘1986-12-01’);
INSERT INTO employees VALUES(10005,‘1955-01-21’,‘Kyoichi’,‘Maliniak’,‘M’,‘1989-09-12’);
INSERT INTO employees VALUES(10006,‘1953-04-20’,‘Anneke’,‘Preusig’,‘F’,‘1989-06-02’);
INSERT INTO employees VALUES(10007,‘1957-05-23’,‘Tzvetan’,‘Zielinski’,‘F’,‘1989-02-10’);
INSERT INTO employees VALUES(10008,‘1958-02-19’,‘Saniya’,‘Kalloufi’,‘M’,‘1994-09-15’);
INSERT INTO employees VALUES(10009,‘1952-04-19’,‘Sumant’,‘Peac’,‘F’,‘1985-02-18’);
INSERT INTO employees VALUES(10010,‘1963-06-01’,‘Duangkaew’,‘Piveteau’,‘F’,‘1989-08-24’);
INSERT INTO employees VALUES(10011,‘1953-11-07’,‘Mary’,‘Sluis’,‘F’,‘1990-01-22’);
复制
输出:
10008|1958-02-19|Saniya|Kalloufi|M|1994-09-15
解题思路
思路1.
最开始, 我想到了,将其按照入职日期倒序排序,然后只输出第一条即可
SELECT * FROM employees ORDER BY hire_date DESC limit 1;
虽然也通过了,想想还有没有其他方式。
思路2.
这一次可以先试一下调用系统函数MAX,返回最大的值,然后再输出
SELECT * FROM employees WHERE hire_date=(SELECT MAX(hire_date) FROM employees);
嗯,经过测试和之前的结果一样。