급여표에서 nᵗʰ 최대 급여 찾기
질문: 세 번째 또는 nᵗʰ를 효율적으로 찾는 방법 직원 ID, 직원 이름 및 직원에 대한 열이 포함된 급여 테이블의 최대 급여 급여?
답변:
이 문제에 접근하는 방법에는 여러 가지가 있습니다.
방법 1: 행 번호
SELECT Salary, EmpName FROM ( SELECT Salary, EmpName, ROW_NUMBER() OVER(ORDER BY Salary) As RowNum FROM EMPLOYEE ) As A WHERE A.RowNum IN (2,3)
이 메소드는 ROW_NUMBER() 함수를 사용하여 각 급여에 행 번호. 원하는 위치(예: 2번째, 3번째)에 해당하는 행 번호에 대해 급여를 선택합니다.
방법 2: Sub Query
SELECT * FROM Employee Emp1 WHERE (N-1) = ( SELECT COUNT(DISTINCT(Emp2.Salary)) FROM Employee Emp2 WHERE Emp2.Salary > Emp1.Salary )
이 방법은 각 직원의 급여보다 큰 고유 급여 수를 계산하는 하위 쿼리입니다. n번째 최대 급여는 (n-1)인 직원의 급여입니다.
방법 3: 상위 키워드
SELECT TOP 1 salary FROM ( SELECT DISTINCT TOP n salary FROM employee ORDER BY salary DESC ) a ORDER BY salary
이 방법은 TOP를 사용합니다. n개의 가장 높은 급여를 선택하는 키워드입니다. 마지막 ORDER BY 절은 실제 n번째 최대 급여가 반환되도록 보장합니다.
이러한 방법 중 하나를 사용하면 주어진 급여 테이블에서 세 번째 또는 n번째 최대 급여를 효율적으로 식별할 수 있습니다.
위 내용은 데이터베이스에서 N번째 최대 급여를 효율적으로 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!