홍동이의 성장일기
[LeetCode] 177. Nth Highest Salary 본문
CREATE FUNCTION getNthHighestSalary(N INT)
RETURNS INT
BEGIN
SET N = N-1;
RETURN (
SELECT DISTINCT salary
FROM Employee
ORDER BY salary DESC
LIMIT N, 1
);
END
💡 문제 풀이
오늘 문제를 통해 SQL에서도 함수를 생성할 수 있다는 것을 처음 알게 되었습니다.
※ 함수 생성 구문
CREATE FUNCTION [함수명] ( [파라미터] )
RETURNS [결과 데이터 타입]
AS
BEGIN
[함수내용]
RETURN [결과값]
END
salary를 내림차순으로 정렬한 후 두 번째 값을 가져오도록 합니다.
그전에 N을 N-1로 지정해준 이유는 LIMIT(n, m)이나 OFFSET을 이용하여 시작위치를 지정하게 되면 '지정한 위치 + 1'부터 값을 가져오기 때문입니다. 즉, N에 2를 넣게 되면 2번째로 큰 값이 아닌 3번째로 큰 값을 가져오게 됩니다.
참고한 사이트
728x90
'Tool > SQL 코딩테스트 풀이' 카테고리의 다른 글
[LeetCode] 1158. Market Analysis I (JOIN에 AND 조건 사용하기) (0) | 2023.12.19 |
---|---|
[LeetCode] 585. Investments in 2016 (0) | 2023.12.13 |
[LeetCode] 176. Second Highest Salary (0) | 2023.12.10 |
[LeetCode] 626. Exchange Seats (0) | 2023.10.15 |
[LeetCode] 178. Rank Scores (0) | 2023.10.14 |
Comments