홍동이의 성장일기

[LeetCode] 176. Second Highest Salary 본문

Tool/SQL 코딩테스트 풀이

[LeetCode] 176. Second Highest Salary

홍동2 2023. 12. 10. 12:45

 

 

Second Highest Salary - LeetCode

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

leetcode.com

 

SELECT MAX(salary) as SecondHighestSalary
FROM Employee
WHERE salary NOT IN (SELECT MAX(salary) FROM Employee)

 

💡 문제 풀이

 

➡️ 가장 큰 salary를 제외한 salary 중 가장 큰 값 (=두번째로 높은 salary)를 구하는 방식을 사용했습니다.

DENSE_RANK로 순위를 붙여준 후 rank가 2인 값만 뽑아주려고 했더니 NULL값 처리가 어렵더라구요 😅

 

※ Solutions를 둘러보다가 알게 된 OFFSET 기능

SELECT salary as SecondHighestSalary
FROM Employee
ORDER BY salary DESC
LIMIT 1
OFFSET 1

 

LIMIT는 결과의 원하는 개수를 제한하는 기능을 하고 OFFSET시작 위치를 지정해줍니다.

예전에 공부하다가 알게 된 개념인데 잘 사용할 일이 없어서 바로 떠오르지는 않네요 🥲

 

하지만 이 쿼리 역시 NULL값 정의가 어려워 정답쿼리가 되지는 못했습니다.

728x90
Comments