[Leetcode] 176. Second Highest Salary

bradley·2022년 6월 9일

SQL

목록 보기
2/5

Problem



Solution


1) 임시 테이블 이용

두 번째로 가장 큰 Salary를 받는 사람이 없을 경우 오답으로 판단된다. 임시 테이블을 이용하여 이 문제를 해결한다.

SELECT
    (SELECT DISTINCT
            Salary
        FROM
            Employee
        ORDER BY Salary DESC
        LIMIT 1 OFFSET 1) AS SecondHighestSalary

2) IFNULL() 이용

SELECT
    IFNULL(
      (SELECT DISTINCT Salary
       FROM Employee
       ORDER BY Salary DESC
        LIMIT 1 OFFSET 1),
    NULL) AS SecondHighestSalary

3) MAX() 이용

MAX()는 값이 없으면 NULL을 return한다.

SELECT
    MAX(Salary) AS SecondHighestSalary
FROM Employee
WHERE Salary < (
    SELECT MAX(Salary)
    FROM Employee
)
profile
데이터 엔지니어링에 관심이 많은 홀로 삽질하는 느림보

0개의 댓글