어떻게 이동에 대한 쿼리를 위한 두 번째로 큰 급여에서는 모든 직원들에서는 Employee 테이블?
간단한 대답:
SELECT distinct(sal)
FROM emp
ORDER BY sal DESC
LIMIT 1, 1;
당신을 얻을 것이 두 번째 max salary.
고 필요하신 경우에는 3 또는 4 나 N 값을 증가시킬 수 있는 첫 번째 값 뒤에제한(n-1)
ie. 4 급여:한 제한 3,1;
대부분의 다른 답변을 보 db 특정합니다.
일반 SQL 쿼리를 다음과 같습니다:
select
sal
from
emp a
where
N = (
select
count(distinct sal)
from
emp b
where
a.sal <= b.sal
)
where
N = any value
이 쿼리할 수 있어야에서 작동하는 모든 데이터베이스입니다.
하려고 다음과 같습니다.
SELECT TOP 1 compensation FROM (
SELECT TOP 2 compensation FROM employees
ORDER BY compensation DESC
) AS em ORDER BY compensation ASC
기본적으로:
찾기 상위 2 급여에서 내림차순으로. 의 사람들 2 을 찾은 최고 급여에서 오름차순으로 정렬됩니다. *선택한 값은 두 번째로 높은 연봉이다.
는 경우 급여지't 뚜렷한 사용할 수 있습니다를 선택 뚜렷한 최고...
대신 합니다.
을 찾을 최대 두 번째부터 급여 직원
SELECT MAX(salary) FROM employee
WHERE salary NOT IN (
SELECT MAX (salary) FROM employee
)
을 찾아 첫 번째와 두 번째 max 급여에서 직원
SELECT salary FROM (
SELECT DISTINCT(salary) FROM employee ORDER BY salary DESC
) WHERE rownum<=2
이 쿼리를 작동하기 때문에 사용
이것을 보십시오:
SELECT
salary,
employeeid
FROM
employees
ORDER BY
salary DESC
LIMIT 2
그냥 두 번째 행에 배치됩니다.