【leetcode Database】177. Nth Highest Salary

本是古典 何须时尚 2022-09-25 01:24 271阅读 0赞

题目:

Write a SQL query to get the nth highest salary from the Employee table.

  1. +----+--------+
  2. | Id | Salary |
  3. +----+--------+
  4. | 1 | 100 |
  5. | 2 | 200 |
  6. | 3 | 300 |
  7. +----+--------+

For example, given the above Employee table, the nth highest salary where n = 2 is 200. If there is no nth highest salary, then the query should return null.

解析:

把所有salary去重后排序,然后通过limit方法取出第n大的数。代码如下:

  1. CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
  2. BEGIN
  3. DECLARE N1 INT;
  4. SET N1 = N-1;
  5. RETURN (
  6. # Write your MySQL query statement below.
  7. SELECT Salary FROM (SELECT DISTINCT Salary FROM Employee) e ORDER BY Salary DESC LIMIT N1,1
  8. );
  9. END

注意:limit后面一定不能写N-1,因为limit后面不能跟表达式。

发表评论

表情:
评论列表 (有 0 条评论,271人围观)

还没有评论,来说两句吧...

相关阅读