[LeetCode 데이터베이스] - N번 높은 월급(177)
제목
SQL 조회를 작성하여
Employee
표에서 두 번째로 높은 급여를 받습니다Salary
.+----+--------+
| Id | Salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
예를 들어 상술한
Employee
표, N = 2
시에는 두 번째로 높은 급여200
로 돌아가야 한다.만약 N
높은 임금이 존재하지 않는다면 조회는 되돌아와야 한다NULL
.+------------------------+
| getNthHighest(2) |
+------------------------+
| 200 |
+------------------------+
출처: 리코더 링크:https://leetcode-cn.com/problems/nth-highest-salary/
2. 해답
mysql> delimiter $$
mysql> create function getNthHighest(n int(11)) returns int(11)
-> begin
-> declare nthHighest int(11);
-> set n = n - 1;
-> set nthHighest = (select Salary from Employee group by Salary order by Salary desc limit n, 1);
-> return nthHighest;
-> end
-> $$
Query OK, 0 rows affected (0.01 sec)
mysql> delimiter ;
mysql> select getNthHighest(2);
+------------------+
| getNthHighest(2) |
+------------------+
| 200 |
+------------------+
3 rows in set (0.00 sec)
mysql> select getNthHighest(5);
+------------------+
| getNthHighest(5) |
+------------------+
| NULL |
+------------------+
3 rows in set (0.00 sec)
3. 참고
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redash를 사용할 때 몰랐던 SQL을 쓰는 법을 배웠습니다.최근 redash에서 sql을 쓸 기회가 많고, 이런 쓰는 방법이 있었는지와 sql에 대해 공부를 다시하고 있기 때문에 배운 것을 여기에 씁니다. Redash란? 월별로 데이터를 표시하고 싶습니다 주별로 데이터를 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.