查找最晚入职员工的所有信息
描述
有一个员工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`));
请你查找employees里最晚入职员工的所有信息,以上例子输出如下:
提交答案:
select A.emp_no,A.birth_date,A.first_name,A.last_name,A.gender,A.hire_date
from employees as A
join (select emp_no, max(hire_date) from employees) as B
where A.emp_no = B.emp_no
提交结果:答案正确 运行时间:17ms 占用内存:3344KB 使用语言:Sqlite 用例通过率:100.00%
网上答案:
select * from employees order by hire_date desc limit 1
提交结果:答案正确 运行时间:18ms 占用内存:3324KB 使用语言:Sqlite 用例通过率:100.00%
涉及知识点:
1 limit使用简介
limit子句是一个选择语句块的最后一个子句,它选取了行的一个子集,来限定中间结果的输出行数。limit子句表示了最前面和最后面被提取的行数。
通常情况下,Limit关键字可以接受一个或者两个数字参数。需要注意的是,这个参数必须是一个整数常量。如果用户给定两个参数,则第一个参数表示第一个返回记录行的偏移量,第二个参数则表示返回记录行的最大数据。另外需要提醒的是,初始记录行的偏移量是0,而不是1。
虽然使用了Limit语句来限制返回的记录数,从而可以提高应用程序的工作效率。但是其也会给系统的性能带来一些负面影响。如可能会导致全表扫描等等。如果数据库管理员决定使用Limit子句来指定需要显示的记录数,那么最好能够最大限度的使用索引,以避免全表扫描,提高工作效率。
2 基本语法
- SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。
limit也可用在出现在子查询中的语句块块儿中。
select * from
(select playerno, name
from players
order by joined desc, playerno asc
limit 2) as T
order by playerno desc;
通常limit子句用来选择列表头部或尾部,添加一个偏移量则可跳过几行。添加偏移量有两种方式,分别是LIMIT [offset,] rows 或LIMIT rows OFFSET offset,推荐使用第二种,它更明确地表示了要显示的行数和偏移的行数。
select playerno, name
from players
order by playerno asc
limit 3, 4;
select playerno, name
from players
order by playerno asc
limit 4 offset 3;
mysql查询语句select-limit使用详解_lin443514407lin的专栏-CSDN博客
https://blog.csdn.net/lin443514407lin/article/details/60127999