출처: https://leetcode.com/problems/combine-two-tables/description/
+-------------+------+
| 열 이름 | 유형 |
+-------------+------+
| ID | 정수 |
| 급여 | 내부 |
+-------------+------+
id는 이 테이블의 기본 키(고유 값을 가진 열)입니다.
이 표의 각 행에는 직원의 급여 정보가 포함되어 있습니다.
표 에서 두 번째로 높은 고유 급여를 찾는 솔루션을 작성하세요 Employee. 두 번째로 높은 급여가 없으면 .을 반환합니다 null (return None in Pandas).
결과 형식은 다음 예시와 같습니다.
예시 1:
입력:
직원 목록:
+----+--------+
| ID | 급여 |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
산출:
+---------------------+
두 번째로 높은 연봉 |
+---------------------+
| 200 |
+---------------------+
예시 2:
입력:
직원 목록:
+----+--------+
| ID | 급여 |
+----+--------+
| 1 | 100 |
+----+--------+
산출:
+---------------------+
두 번째로 높은 연봉 |
+---------------------+
| null |
+---------------------+
내가 한 풀이
SELECT MAX(salary) AS SecondHighestSalary
FROM (SELECT salary, DENSE_RANK() OVER(ORDER BY SALARY DESC) AS `rank`
FROM Employee
) a
WHERE a.rank = 2
트러블 슈팅
MAX를 넣어야 널값이 나와도 에러가 안 난다는 센스 알아두고
FROM 절 서브쿼리에선 별칭 필수
그리고 서브쿼리의 컬럼 표현 할때 a.rank 이렇게 표현
두번째 높은 연봉 출력, 널일때 null로 출력