Leetcode SQL50 (176)

Pocketopi·2025년 4월 30일

[MYSQL] Leetcode

목록 보기
26/34

🔔 문제

두 번째로 높은 급여를 출력하라.
단, 두 번째 급여가 존재하지 않으면 NULL을 출력해야 한다.
[Second Highest Salary]

🎯 풀이 전략

🔑 핵심 포인트

급여는 SALARY 컬럼에 존재하고, 중복이 있을 수 있으므로 DISTINCT 처리 필요
내림차순 정렬 후 두 번째 값을 가져와야 하므로 LIMIT 1 OFFSET 1 사용
서브쿼리로 사용했을 때 값이 없으면 NULL을 반환하므로 서브쿼리로 만들어 SELECT로 출력

💻 전체 코드

SELECT (
    SELECT DISTINCT SALARY
    FROM EMPLOYEE
    ORDER BY SALARY DESC
    LIMIT 1 OFFSET 1
) AS SECONDHIGHESTSALARY

💡 핵심문법 및 배운 점

  • DISTINCT
  • LIMIT N OFFSET M: M개 건너뛰고 N개 출력
  • SELECT (...) AS 컬럼명: 서브쿼리 결과를 단일 컬럼으로 출력
  • 서브쿼리로 만들지 않고 그냥 사용하면 값이 없을 때 빈값이 출력된다, 그래서 서브쿼리로 만들어서 넣어주었다.

⏱️ 걸린 시간: 약 10분 56초

profile
통계학/컴퓨터공학 전공 4학년 학생 DA뿌수기 일기장

0개의 댓글