BiruLyu
6/2/2017 - 6:34 AM

177. Nth Highest Salary(1st).sql

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  DECLARE Nth INT;
  SET Nth = N;
  RETURN (
      # Write your MySQL query statement below.
      SELECT DISTINCT A.Salary //Subquery may more than one row
      FROM Employee AS A
      WHERE (SELECT COUNT(DISTINCT(B.Salary)) FROM Employee AS B WHERE B.Salary >= A.Salary) = Nth
  );
END
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 M,1
  );
END