H******7 发帖数: 1728 | 1 我的答案一直得到wrong answer
SELECT Salary FROM Employee ORDER BY Salary DESC LIMIT N, 1
谁给指点一下!?谢谢 |
a*****a 发帖数: 46 | 2 select if(s=2147483648, null, s) from (
(select 2147483648 as s)
union all
(select distinct Salary as s from Employee)
) x
order by s Desc limit N, 1
这个可以过,但估计不是很好 |
z*u 发帖数: 329 | 3 Try this
SELECT DISTINCT(Emp1.Salary) FROM Employee Emp1 WHERE (N-1) = (SELECT COUNT(
DISTINCT(Emp2.Salary))
FROM Employee Emp2 WHERE Emp2.Salary > Emp1.Salary) |
T******7 发帖数: 1419 | 4 能简单解释一下么
COUNT(
【在 z*u 的大作中提到】 : Try this : SELECT DISTINCT(Emp1.Salary) FROM Employee Emp1 WHERE (N-1) = (SELECT COUNT( : DISTINCT(Emp2.Salary)) : FROM Employee Emp2 WHERE Emp2.Salary > Emp1.Salary)
|
s***y 发帖数: 904 | 5 这是mysql的解法吧
别的环境不管用的
【在 H******7 的大作中提到】 : 我的答案一直得到wrong answer : SELECT Salary FROM Employee ORDER BY Salary DESC LIMIT N, 1 : 谁给指点一下!?谢谢
|
s***y 发帖数: 904 | 6 select name, salary from
(select name, salary, (rank ()over (order by salary desc)) as rank) tabel1
where table1.rank=n |
z*u 发帖数: 329 | 7 The idea is just simple, in order to find the Nth highest salary , we just
find the salary that has exactly N - 1 salaries greater than itself.
【在 T******7 的大作中提到】 : 能简单解释一下么 : : COUNT(
|
r****n 发帖数: 63 | 8 DECLARE M;
SET M=N-1;
SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT M, 1; |
a*****2 发帖数: 96 | 9 CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
RETURN (
# Write your MySQL query statement below.
SELECT IF((SELECT COUNT(DISTINCT(Salary)) FROM Employee) < N, null,
orderedtable.Salary) AS 'NthHighestSalary'
FROM
(SELECT DISTINCT (Salary) AS Salary FROM Employee ORDER BY Salary
DESC LIMIT N) AS orderedtable
ORDER BY orderedtable.Salary ASC LIMIT 1
);
END |
n*******s 发帖数: 17267 | |