SQL - LeetCode) 177. Nth Highest Salary

JiWOn·2024년 3월 12일
0

프로그래머스

목록 보기
4/4
post-thumbnail

문제

Write a solution to find the nth highest salary from the Employee table. If there is no nth highest salary, return null.

직원 테이블에서 n번째로 높은 연봉을 구하는 솔루션을 작성합니다. n번째로 높은 연봉이 없으면 null을 반환합니다.

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
DECLARE m INT; 
set m = n-1;
  RETURN (
      # Write your MySQL query statement below.
        select distinct salary
        from Employee
        order by salary desc
        limit 1
        offset m
  );
END

풀이

CREATE FUNCTION

CREATE FUNCTION 문은 함수 이름, 매개변수, 함수 반환 타입, 함수 본문으로 구성되어 있다.
위의 답안으로 각 명령어들의 뜻을 정리해보자

  1. CREATE FUNCTION __ (N INT) : 함수이름 정의 및 받아오는 매개변수 (int 타입의 n)
  2. RETURNS INT : 반환되는 변수도 int
  3. BEGIN ... END : 함수는 BEGIN과 EN로 본문을 묶어놓을 수 있다.
  4. DECLARE M INT : 변수를 선언
  5. SET m = n-1 : 변수에 값을 지정, 본문 안에 n-1 과 같은 내용을 쓸 수 없다....
    6.RETURN () : 쿼리문 쓰기

🔗 https://www.ibm.com/docs/en/db2/11.5?topic=plsql-create-function-statement

OFFSET

어디서 부터 가져올지

SELECT * FROM 테이블명 a LIMIT 3 OFFSET 5; -- 5행 부터 8행까지 출력
-- == limit 5, 8
SELECT * FROM a ORDERS LIMIT 5, 8

0개의 댓글