홍동이의 성장일기

[LeetCode] 177. Nth Highest Salary 본문

Tool/SQL 코딩테스트 풀이

[LeetCode] 177. Nth Highest Salary

홍동2 2023. 12. 11. 11:32

 

Nth Highest Salary - LeetCode

Can you solve this real interview question? Nth Highest Salary - Table: Employee +-------------+------+ | Column Name | Type | +-------------+------+ | id | int | | salary | int | +-------------+------+ id is the primary key (column with unique values) for

leetcode.com

 

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번째로 큰 값을 가져오게 됩니다.

 


참고한 사이트

 

[MS-SQL] CREATE FUNCTION - 함수 생성

● CREATE FUNCTION - 사용자 정의 함수 생성 합계나 평균을 내기 위해서는 Sum()이나 Avg...

blog.naver.com

 

728x90
Comments