Im between cherry

LeetCode | MySQL | 177. Nth Highest Salary 본문

데이터분석/practice_query

LeetCode | MySQL | 177. Nth Highest Salary

meal 2020. 9. 3. 15:06

177. Nth Highest Salary

https://leetcode.com/problems/nth-highest-salary/

 

Nth Highest Salary - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

--CASE로 풀기

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  RETURN (
      # Write your MySQL query statement below.
        SELECT CASE WHEN COUNT(sub.Salary) < N THEN NULL
                    ELSE MIN(sub.Salary)
                END
        FROM(
            SELECT DISTINCT Salary
            FROM Employee
            ORDER BY Salary DESC
            LIMIT N
            )sub
  );
END
-- if function 쓰기

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  RETURN (
        SELECT IF(COUNT(sub.Salary) < N, NULL, MIN(sub.Salary))
        FROM(
            SELECT DISTINCT Salary
            FROM Employee
            ORDER BY Salary DESC
            LIMIT N
            )sub
  );
END
-- LIMIT 심화 풀이법

CREATE FUNCTION getNthHighestSalary(N INT) 
RETURNS INT
BEGIN
--DECLARE A INT;
  SET N = N-1;
  RETURN (
        SELECT DISTINCT Salary
        FROM Employee
        ORDER BY Salary DESC
        LIMIT 1 OFFSET N
  );
  END

 

Comments