他在tb1中选择语句,以防出现某些关联。否则,我喜欢这个答案。这在Mysql 5.7中不起作用,因为子查询中不允许限制。Mysql中没有TOP关键字。请参阅。子查询不支持mysqlso中的限制操作欢迎使用SO。谢谢你的回答。我想,通过在代码行前面添加4个空
他在tb1中选择语句,以防出现某些关联。否则,我喜欢这个答案。这在Mysql 5.7中不起作用,因为子查询中不允许限制。Mysql中没有TOP关键字。请参阅。子查询不支持mysqlso中的限制操作欢迎使用SO。谢谢你的回答。我想,通过在代码行前面添加4个空,mysql,Mysql,他在tb1中选择语句,以防出现某些关联。否则,我喜欢这个答案。这在Mysql 5.7中不起作用,因为子查询中不允许限制。Mysql中没有TOP关键字。请参阅。子查询不支持mysqlso中的限制操作欢迎使用SO。谢谢你的回答。我想,通过在代码行前面添加4个空格,它将被正确格式化为代码。让我给你一个提示:在代码旁边添加一些信息总是好的。谢谢。这是第n个最高工资的完美答案,并且这个查询返回所有相同工资的员工。有人能解释一下为什么这个答案被否决吗? SELECT DISTINCT(salary) AS
他在tb1中选择语句,以防出现某些关联。否则,我喜欢这个答案。这在Mysql 5.7中不起作用,因为子查询中不允许限制。Mysql中没有TOP关键字。请参阅。子查询不支持mysqlso中的限制操作欢迎使用SO。谢谢你的回答。我想,通过在代码行前面添加4个空格,它将被正确格式化为代码。让我给你一个提示:在代码旁边添加一些信息总是好的。谢谢。这是第n个最高工资的完美答案,并且这个查询返回所有相同工资的员工。有人能解释一下为什么这个答案被否决吗?
SELECT DISTINCT(salary) AS salary
FROM tbl_salary
ORDER BY salary DESC
LIMIT 1 OFFSET (n - 1);
SELECT * FROM
(SELECT @rank := @rank + 1 AS rank, salary
FROM tbl,(SELECT @rank := 0) r
order by salary desc ) m
WHERE rank=3
select MIN(sal) from salary where sal in
(select sal from salary order by sal desc limit 9)
SELECT DISTINCT(Salary) FROM table ORDER BY Salary DESC LIMIT n,1
SELECT DISTINCT(column_name)
FROM table_name
ORDER BY column_name DESC limit N-1,1;
SELECT DISTINCT(column_name)
FROM table_name
ORDER BY column_name DESC limit 2,1;
SELECT * FROM Employee Emp1
WHERE (N-1) = (
SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employee Emp2
WHERE Emp2.Salary > Emp1.Salary)
SELECT DISTINCT(column name) FROM table ORDER BY (column name) desc LIMIT 4,1
SELECT DISTINCT(column name) FROM table ORDER BY (column name) desc LIMIT n-1,1
select * from salary where salary =
(select distinct salary from salary order by salary desc limit 2,1)
SELECT * FROM employe e1 WHERE n-1 = ( SELECT COUNT(DISTINCT(e2.salary)) FROM employe e2 WHERE e2.salary > e1.salary)
Where n = highest number of salary like 1,2,3
SELECT DISTINCT Salary FROM tblemployee ORDER BY Salary DESC LIMIT 1 OFFSET (n-1)
SELECT DISTINCT Salary FROM tblemployee ORDER BY Salary DESC LIMIT 1 OFFSET 7
select MAX(Salary) from Employee;
SELECT MAX(Salary) FROM Employee
WHERE Salary NOT IN (SELECT MAX(Salary) FROM Employee);
select MAX(Salary) from Employee
WHERE Salary <> (select MAX(Salary) from Employee )
SELECT * /*This is the outer query part */
FROM Employee Emp1
WHERE (N-1) = ( /* Subquery starts here */
SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employee Emp2
WHERE Emp2.Salary > Emp1.Salary)
SELECT *
FROM Employee Emp1
WHERE (1) = (
SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employee Emp2
WHERE Emp2.Salary > Emp1.Salary)
SELECT TOP 1 Salary
FROM (
SELECT DISTINCT TOP N Salary
FROM Employee
ORDER BY Salary DESC
) AS Emp
ORDER BY Salary
SELECT Salary FROM Employee
ORDER BY Salary DESC LIMIT n-1,1
SELECT Salary FROM Employee
ORDER BY Salary DESC OFFSET N-1 ROW(S)
FETCH FIRST ROW ONLY
select * from (
select Emp.*,
row_number() over (order by Salary DESC) rownumb
from Employee Emp
)
where rownumb = n; /*n is nth highest salary*/
select * FROM (
select EmployeeID, Salary
,rank() over (order by Salary DESC) ranking
from Employee
)
WHERE ranking = N;
SELECT * FROM Employee Emp1
WHERE (N-1) = ( SELECT COUNT(*) FROM (
SELECT DISTINCT(Emp2.Salary)
FROM Employee Emp2
WHERE Emp2.Salary > Emp1.Salary LIMIT N))
SELECT * FROM Employee Emp1
WHERE (N-1) = (
SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employee Emp2
WHERE Emp2.Salary > Emp1.Salary LIMIT N)
SELECT
*
FROM
(SELECT
*
FROM
table_name
ORDER BY column_name ASC
LIMIT N) AS tbl
ORDER BY column_name DESC
LIMIT 1;
SELECT
TOP 1 * from (SELECT TOP nth_largest_no * FROM Products Order by price desc) ORDER BY price asc;
SELECT
TOP 1 * from (SELECT TOP 5 * FROM Products Order by price desc) ORDER BY price asc;
SELECT amount FROM salary
GROUP by amount
ORDER BY amount DESC
LIMIT n-1 , 1
SELECT DISTINCT amount
FROM salary
ORDER BY amount DESC
LIMIT n-1 , 1
SELECT salary
FROM [employees]
ORDER BY salary DESC
offset 1 rows
FETCH next 1 rows only
SELECT salary
FROM [employees]
ORDER BY salary DESC
offset **n-1** rows
FETCH next 1 rows only
SET @cnt=0;
SELECT s.*
FROM (SELECT ( @cnt := @cnt + 1 ) AS rank,
a.*
FROM one AS a
ORDER BY a.salary DESC) AS s
WHERE s.rank = '3';
set @cnt=0;
select s.* from (SELECT (@cnt := @cnt + 1) AS rank,a.* FROM one as a order by a.salary DESC) as s WHERE s.rank='3';
set @cnt=0;
select s.* from (SELECT (@cnt := @cnt + 1) AS rank,a.* FROM one as a order by a.salary DESC) as s WHERE s.rank='5';
select distinct(column_name) from table_name order by column_name desc limit (n-1),1;
select SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(DISTINCT salary ORDER BY salary DESC),',',3),',',-1) from employees
+----------+--------+--------+
| emp | salary | deptno |
+----------+--------+--------+
| ep1 | 10 | dp1 |
| ep2 | 20 | dp2 |
| ep3 | 30 | dp2 |
| ep4 | 40 | dp1 |
| ep5 | 50 | dp1 |
| ep6 | 60 | dp3 |
| ep7 | 70 | dp3 |
+----------+--------+--------+
select
*
from
salaries as t1
where
t1.salary = (select
salary
from
salaries
where
salaries.deptno = t1.deptno ORDER by salary desc limit 1 offset 1);
SET @prev_value = NULL;
SET @rank_count = 0;
select * from
(SELECT
s.*,
CASE
WHEN @prev_value = deptno THEN @rank_count := @rank_count + 1
WHEN @prev_value := deptno THEN @rank_count := 1
ELSE @rank_count := 1
END as rank
FROM salaries s
ORDER BY deptno, salary desc) as t
having t.rank = 2;
+----+--------+
| Id | Salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
DECLARE limitv INT;
SET limitv = N - 1;
RETURN (
Select IFNULL(
(select Distinct Salary from Employee order by Salary Desc limit limitv, 1),
NULL
) as getNthHighestSalary
);
END
+-------+--------+
| name | salary |
+-------+--------+
| A | 100 |
| B | 200 |
| C | 300 |
| D | 400 |
| E | 500 |
| F | 500 |
| G | 600 |
+-------+--------+
SELECT DISTINCT salary FROM emp ORDER BY salary DESC LIMIT 1 OFFSET N-1;
SELECT * FROM emp WHERE salary = (
SELECT DISTINCT salary FROM emp ORDER BY salary DESC LIMIT 1 OFFSET N-1
);