본문 바로가기
PROGRAMMING/LeetCode

[Leetcode] 176. Second Highest Salary_해설, 풀이, 설명

by HYUNHP 2022. 8. 15.
728x90
반응형

안녕하세요, HELLO

 

오늘은 Leetcode 알고리즘 문제 '176. Second Highest Salary'에 대해서 살펴보고자 합니다. 

 

알고리즘 문제, 코드, 해설 그리고 Leetcode에서 제공해준 solution 순서대로 정리하였습니다.


STEP 1. 'Second Highest Salary' 알고리즘 문제

 

STEP 2. 'Second Highest Salary' 코드(code)

 

STEP 3. 'Second Highest Salary' 해설

 

STEP 4. 'Second Highest Salary' solution

 

반응형

 

STEP 1. 'Second Highest Salary' 알고리즘 문제

 

Write an SQL query to report the second highest salary from the Employee table. If there is no second highest salary, the query should report null. 

 

Employee 테이블에서 2번째로 큰 연봉을 반환하는 sql 쿼리를 작성해야 합니다. 만약에 2번째로 큰 연봉이 없을 경우에는 null을 반환합니다.

 

Table : Employee

 

The query result format is in the following example.


STEP 2. 'Second Highest Salary' 코드(code)

 

■ Runtime: 251 ms, faster than 62.93% of MySQL online submissions for Second Highest Salary.
■ Memory Usage: 0B, less than 100.00% of MySQL online submissions for Second Highest Salary.

 

# case 1
# Compare 2 tables

SELECT max(E2.salary) as 'SecondHighestSalary'
FROM Employee as E1, Employee as E2
WHERE E1.salary > E2.salary

STEP 3. 'Second Highest Salary' 해설

 

2번째로 큰 salary를 확인해야 되는 문제이기에, 2개의 테이블로 비교해서 계산했습니다.

만약에 3번째, 4번째로 큰 수치를 확인해야 된다면, 테이블을 3개, 4개로 늘려서 연산할 생각입니다.

 

 

STEP 4. 'Second Highest Salary' solution

 

추가적으로, Leetcode에서 제공해준 solution 코드를 살펴보겠습니다.

 

■ Runtime: 201 ms, faster than 89.33% of MySQL online submissions for Second Highest Salary.
■ Memory Usage: 0B, less than 100.00% of MySQL online submissions for Second Highest Salary.

 

# case 2
# Compare criteria

SELECT max(E.salary) as 'SecondHighestSalary'
FROM Employee as E
WHERE E.salary < 
    (SELECT max(salary)
     FROM Employee)

 


■ 마무리

 

오늘은 Leetcode 알고리즘 문제 '176. Second Highest Salary'에 대해서 알아봤습니다.

좋아요와 댓글 부탁드리며,

오늘 하루도 즐거운 날 되시길 기도하겠습니다 :)

감사합니다.

 

반응형

댓글