Есть ли команда, сродни:
2nd highest salary from tbl_salary
или
4th highest salary from tbl_salary
?
Я видел:
select salary
from tbl_salary t
where &n = (
select count(salary)
from(
select distinct salary
from tbl_salary
)where t.salary<=salary
);
Как делает это, это работает?
Там другие простые пути состоят в том, чтобы получить результат?
Если это простой запрос, просто используйте LIMIT:
-- get the 4th highest salary
SELECT salary FROM tbl_salary
ORDER BY salary DESC
LIMIT 3,1
Вы можете сделать это, используя условие ограничения:
select * from tbl_salary order by salary desc limit 2,1;
Я уверен, что есть лучший способ сделать это, но:
ВЫБРАТЬ зарплату ИЗ tbl_salary ORDER BY salary DESC LIMIT n, 1
Где n - желаемая должность - 1 (т.е. для получения второй по величине зарплаты это будет LIMIT 1,1)