본문 바로가기
SQL

[LeetCode] Nth Highest Salary (set, limit)

by YGSEO 2021. 4. 9.
728x90
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  SET N = N - 1;
  RETURN (
          SELECT DISTINCT Salary -- 장점: 서브쿼리를 안써도됨, IF문or CASE문 작성 필요없음. Aggregation function 작성 필요없어짐.  		   
          FROM employee
          ORDER BY Salary DESC
          LIMIT N, 1 -- N-1번째까지는 지우고 그 N번째를 가져오라는 의미
		 );
END

 

Limit 구문에 대해 정리하기

SELECT 열명 FROM 테이블명 LIMIT 시작행, 개수

 

예제

코드 실행 및 결과

# {"headers": ["Id", "Salary"], "values": [[3, 300]]}

 

# {"headers": ["Id", "Salary"], "values": [[2, 200]]}

zero-indexing임을 알 수 있다

n번째 행을 구할 때는 limit start_index, num_rows_to_retrieve 이런식으로 하면 된다.

 

 

 


Limit 구문
출처: https://toma0912.tistory.com/42 [토마의 개발노트]

 

 

 

코드

출처: velog.io/@jihyunn19/LeetCode-177.-Nth-Highest-Salary

728x90

댓글