resueltos por número numero mostrar género empleados ejercicios ejemplos departamentos departamento consultas sql mysql sql-server-2005

por - oracle consultas en sql hr



¿Cómo puedo encontrar el segundo salario más alto de la tabla de empleados? (17)

¿Cómo hago para consultar el segundo salario más alto de todos los empleados en mi tabla de Empleados?


// Para seleccionar el nombre del empleado cuyo salario es el segundo más alto

SELECT name FROM employee WHERE salary = (SELECT MIN(salary) FROM (SELECT TOP (2) salary FROM employee ORDER BY salary DESC) )


Intenta algo como:

SELECT TOP 1 compensation FROM ( SELECT TOP 2 compensation FROM employees ORDER BY compensation DESC ) AS em ORDER BY compensation ASC

Esencialmente:

  • Encuentra los 2 mejores salarios en orden descendente.
  • De esos 2, encuentra el salario más alto en orden ascendente.
  • El valor seleccionado es el segundo salario más alto.

Si los salarios no son distintos, puede usar SELECT DISTINCT TOP ... lugar.


La mayoría de las otras respuestas parecen ser específicas de db.

La consulta SQL general debe ser la siguiente:

select sal from emp a where N = ( select count(distinct sal) from emp b where a.sal <= b.sal ) where N = any value

y esta consulta debería poder trabajar en cualquier base de datos.


Para encontrar el segundo salario máximo del empleado,

SELECT MAX(salary) FROM employee WHERE salary NOT IN ( SELECT MAX (salary) FROM employee )

Para encontrar el primer y segundo salario máximo del empleado,

SELECT salary FROM ( SELECT DISTINCT(salary) FROM employee ORDER BY salary DESC ) WHERE rownum<=2

Estas consultas están funcionando bien porque he usado


Prueba esto:

SELECT salary, employeeid FROM employees ORDER BY salary DESC LIMIT 2

Entonces acaba de obtener la segunda fila.


Prueba esto:

SELECT max(salary) FROM emptable WHERE salary < (SELECT max(salary) FROM emptable);


Prueba esto:

select max(Emp_Sal) from Employee a where 1 = ( select count(*) from Employee b where b.Emp_Sal > a.Emp_Sal)


Respuesta simple:

SELECT sal FROM emp ORDER BY sal DESC LIMIT 1, 1;

Obtendrá sólo el segundo salario máximo.

Y si necesita cualquier valor 3º o 4º o Nº, puede aumentar el primer valor seguido de LIMIT (n-1) es decir. por 4to salario: LIMIT 3, 1;


Tal vez deberías usar DENSE_RANK .

SELECT * FROM ( SELECT [Salary], (DENSE_RANK() OVER ( ORDER BY [Salary] DESC)) AS rnk FROM [Table1] GROUP BY [Num] ) AS A WHERE A.rnk = 2


SELECT TOP 1 salary FROM ( SELECT TOP 2 salary FROM employees ) sal ORDER BY salary DESC;


select distinct(t1.sal) from emp t1 where &n=(select count(distinct(t2.sal)) from emp t2 where t1.sal<=t2.sal);

Salida: Ingrese el valor para n: si desea el segundo más alto, ingrese 2; si quieres 5, escribe n = 3


select * from emp where sal=(select min(sal) from (select sal from(select distinct sal from emp order by sal desc) where rownum<=n));

n puede ser el valor que desea ver ......

Puede ver todos los campos de esa persona que tenga el salario más alto * texto fuerte *


select max(Emp_Sal) from Employee a where 1 = ( select count(*) from Employee b where b.Emp_Sal > a.Emp_Sal)

Si corriendo hombre.


select max(Salary) from Employee where Salary not in (Select top4 salary from Employee);

porque la respuesta es la siguiente

max (5,6,7,8)

por lo que se mostrará el quinto registro más alto, los primeros cuatro no se considerarán


select max(sal) from emp where sal not in (select max(sal) from emp )

O

select max(salary) from emp table where sal<(select max(salary)from emp)


select max(Salary) from Employee where Salary not in (Select Max(Salary) from Employee)


select * from compensation where Salary = ( select top 1 Salary from ( select top 2 Salary from compensation group by Salary order by Salary desc) top2 order by Salary)

que le dará todas las filas con el segundo salario más alto, que algunas personas pueden compartir