0
SELECT *
FROM Employees Emp1
WHERE (n) = (SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employees Emp2
WHERE Emp2.Salary >= Emp1.Salary)
SELECT *
FROM Employees Emp1
WHERE (n) = (SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employees Emp2
WHERE Emp2.Salary >= Emp1.Salary)
가장 중요한 것은 하위 쿼리라고 생각합니다. 현재 Emp1.Salary
보다 크거나 같은 고유 급여의 수를 리턴합니다. 반환 된이 값은 직원의 급여 순위와 같습니다.
세 번째로 큰 급여를 가진 직원이 10000 인 것으로 가정합니다. 하위 쿼리는 귀하보다 큰 급여의 수를 계산합니다 (2
). 하나의 숫자는 2+1=3
입니다. 플러스 하나는 직원을 포함하여 귀하의 자살을 포함하여 월급이 10000이됩니다. 이것은 WHERE
조항에 사용 된 >=
입니다.
그렇다고해서 전체 쿼리가 직원의 급여 순위에 따라 직원을 선택한다는 것이 좋습니다.
SQL의 "맛"은 무엇입니까? 나는 그런 것을 본 적이 없다 ...이 오라클인가? MySQL은? PostgreSQL? SQLite? 다른 것? –
이것은 mysql 쿼리 테이블에서 n 번째 급여를 찾을 – vijay
내 재미있는 추측 : (n) 테이블의 열 – Nabin