Base de datos Niu Ke.com SQL combat 02-Encuentra toda la información de los empleados con el rango más bajo de los empleados
Descripción del título
Encuentre toda la información del empleado que se ubica en el tercio inferior del tiempo del empleado entrante
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`));
Ingrese la descripción:
Ninguno
Descripción de salida:
emp_no | Fecha de nacimiento | Fecha de nacimiento | apellido | apellido | fecha de contratación |
---|---|---|---|---|---|
10005 | 1955-01-21 | Kyoichi | campo de frambuesa | METRO | 1989-09-12 |
Mi respuesta
select * from employees
where hire_date = (select distinct hire_date from employees order by hire_date desc limit 2,1)
Al igual que con la pregunta anterior, el último empleado clasificado no puede ser una persona, y puede haber más de una persona, utilizando la clasificación y restringida para obtener solo un número específico de resultados. Entonces, primero uso la declaración de subconsulta para encontrar la hora de la última tercera entrada, y luego regreso a la tabla para que coincida, para obtener la información de todas las personas que ingresaron al trabajo en este momento.
Análisis:
LIMIT m, n: significa comenzar desde el elemento m + 1 y tomar datos n;
LIMIT n: significa comenzar desde el elemento 0 y tomar datos n, que es la abreviatura del límite (0, n)
Creo que la mejor respuesta
Solo necesita encontrar la fecha es menor que el otro número es 2.
select * from employees e1
where 2=(select count(*) from employees e2 where e1.hire_date < e2.hire_date);