# 177. Nth Highest Salary

> Nguồn: https://tiennhm.io.vn/docs/leetcode/database/177-nth-highest-salary
> Write a solution to find the nth highest salary from the `Employee` table. If there is no nth highest salary, return `null`.

## Giới thiệu bài toán

Chi tiết: https://leetcode.com/problems/nth-highest-salary/

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.

> **Tip: Yêu cầu**
>
> Write a solution to find the nth highest salary from the `Employee` table. If there is no nth highest salary, 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                   |

## Giải quyết bài toán

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

Tham khảo: https://leetcode.com/submissions/detail/1038477455/
