홍동이의 성장일기
[LeetCode] 176. Second Highest Salary 본문
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
'Tool > SQL 코딩테스트 풀이' 카테고리의 다른 글
[LeetCode] 585. Investments in 2016 (0) | 2023.12.13 |
---|---|
[LeetCode] 177. Nth Highest Salary (0) | 2023.12.11 |
[LeetCode] 626. Exchange Seats (0) | 2023.10.15 |
[LeetCode] 178. Rank Scores (0) | 2023.10.14 |
[HackerRank] Weather Observation Station 20 (0) | 2023.10.13 |
Comments