반응형

문제 출처 :


https://leetcode.com/problems/nth-highest-salary/


문제 해결에 필요한 사항

1. SET


N번째 큰 값을 찾아야한다.

이때 LIMIT A, B는  A번째까지 제외한 A+1 ~ A+B 번째를 출력해준다.


따라서 우리는 N번째를 구해야하니 N = N - 1을 해주고


LIMIT N, 1을 해주면 N - 1 + 1 ~ N - 1 + 1 == N ~ N이 되기에 N번째의 값이 출력된다.






소스 코드 : 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  SET N = N - 1;
  RETURN (
      # Write your MySQL query statement below.
      SELECT
        IFNULL(
            (SELECT DISTINCT Salary FROM Employee
            ORDER BY Salary DESC
            LIMIT N, 1), NULL
        ) 
      
  );
END
 
cs


반응형

'Applied > Database' 카테고리의 다른 글

[Programmers] 고양이와 개는 몇 마리 있을까  (0) 2019.09.09
[184번] Department Highest Salary  (0) 2019.06.14
[183번] Customers Who Never Order  (0) 2019.06.06
[176번] Second Highest Salary  (0) 2019.06.04
[182번] Duplicate Emails  (0) 2019.05.30