+-------------+------+ | Column Name | Type | +-------------+------+ | id | int | | salary | int | +-------------+------+ id 是该表的主键(列中的值互不相同)。 该表的每一行都包含有关员工工资的信息。
编写一个解决方案查询 Employee 表中第 n 高的 不同 工资。如果少于 n 个不同工资,查询结果应该为 null 。
CREATEFUNCTION getNthHighestSalary(N INT) RETURNSINT BEGIN DECLARE offset_val INT; SET offset_val = N -1; RETURN ( # Write your MySQL query statement below. SELECTDISTINCT salary FROM Employee ORDERBY salary DESC LIMIT 1OFFSET offset_val ); END
1 2 3 4 5 6 7 8 9 10 11 12 13
CREATEFUNCTION getNthHighestSalary(N INT) RETURNSINT BEGIN RETURN ( # Write your MySQL query statement below. SELECTDISTINCT salary FROM Employee e1 WHERE N -1= ( SELECTCOUNT(DISTINCT e2.salary) FROM Employee e2 WHERE e2.salary > e1.salary ) ); END
1 2 3 4 5 6 7 8 9 10 11 12
CREATEFUNCTION getNthHighestSalary(N INT) RETURNSINT BEGIN RETURN ( # Write your MySQL query statement below. SELECTDISTINCT salary FROM ( SELECT salary, DENSE_RANK() OVER (ORDERBY salary DESC) as rnk FROM Employee ) ranked WHERE rnk = N ); END