我的答案一直得到wrong answer SELECT Salary FROM Employee ORDER BY Salary DESC LIMIT N, 1 谁给指点一下!?谢谢
R*R
2 楼
pring marks the arrival of the ThinkPad T460s, our latest evolution of the best-selling ThinkPad in North America. This enterprise-ready Ultrabook 8482; is perfectly engineered for high productivity and low maintenance. Save 15% with eCoupon code: SMBMARCHDEAL can be used for Thinkpad T460S, New Thinkpad X1C Gen 4, ThinkCentre M800z , and ThinkPad X260 Good luck !
a*a
3 楼
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 这个可以过,但估计不是很好
b*1
4 楼
在哪个网站可以用啊?在官网用不了啊。
【在 R***R 的大作中提到】 : pring marks the arrival of the ThinkPad T460s, our latest evolution of the : best-selling ThinkPad in North America. This enterprise-ready Ultrabook : 8482; is perfectly engineered for high productivity and low maintenance. : Save 15% with eCoupon code: SMBMARCHDEAL : can be used for Thinkpad T460S, New Thinkpad X1C Gen 4, : ThinkCentre M800z , and ThinkPad X260 : Good luck !
z*u
5 楼
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)
【在 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
8 楼
这是mysql的解法吧 别的环境不管用的
【在 H******7 的大作中提到】 : 我的答案一直得到wrong answer : SELECT Salary FROM Employee ORDER BY Salary DESC LIMIT N, 1 : 谁给指点一下!?谢谢
s*y
9 楼
select name, salary from (select name, salary, (rank ()over (order by salary desc)) as rank) tabel1 where table1.rank=n
z*u
10 楼
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
11 楼
DECLARE M; SET M=N-1; SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT M, 1;
a*2
12 楼
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