[SQL_Q] 177. Nth Highest Salary (with Function)

Hyunjun Kim·2025년 7월 22일
0

SQL

목록 보기
57/90
Table: Employee

+-------------+------+
| Column Name | Type |
+-------------+------+
| id          | int  |
| salary      | int  |
+-------------+------+
id is the primary key (column with unique values) for this table.
Each row of this table contains information about the salary of an employee.
 

Write a solution to find the nth highest distinct salary from the Employee table. If there are less than n distinct salaries, return null.

The result format is in the following example.

 

Example 1:

Input: 
Employee table:
+----+--------+
| id | salary |
+----+--------+
| 1  | 100    |
| 2  | 200    |
| 3  | 300    |
+----+--------+
n = 2
Output: 
+------------------------+
| getNthHighestSalary(2) |
+------------------------+
| 200                    |
+------------------------+
Example 2:

Input: 
Employee table:
+----+--------+
| id | salary |
+----+--------+
| 1  | 100    |
+----+--------+
n = 2
Output: 
+------------------------+
| getNthHighestSalary(2) |
+------------------------+
| null                   |
+------------------------+

FUNCTION 기능을 사용해보기는 처음이라서
아예 정답을 봐 버렸다.

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
    SET N = N - 1; 
    RETURN (
        SELECT DISTINCT salary
        FROM Employee
        ORDER BY salary DESC 
        LIMIT 1 OFFSET N
    );
END

문제 자체는 어렵지 않았다.
이런 구조구나~ 확인했으니 다음부터 사용하면 될 듯!

profile
Data Analytics Engineer 가 되

0개의 댓글