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 [토마의 개발노트]
코드
728x90
'SQL' 카테고리의 다른 글
[LeetCode] Consecutive Numbers (self join twice) (0) | 2021.04.10 |
---|---|
[LeetCode] Rank Scores (rank, dense rank, row number) (0) | 2021.04.10 |
[LeetCode] Reformat Department Table (sum, case, when, then) (0) | 2021.04.09 |
[LeetCode] Swap Salary (update, ENUM, SET, CASE, IF) (0) | 2021.04.09 |
[LeetCode] Not Boring Movies (0) | 2021.04.09 |
댓글