Как найти n'th самое высокое значение столбца?

Есть ли команда, сродни:

  • 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
);

Как делает это, это работает?

Там другие простые пути состоят в том, чтобы получить результат?

10
задан Pacerier 14 April 2015 в 07:42
поделиться

3 ответа

Если это простой запрос, просто используйте LIMIT:

-- get the 4th highest salary
SELECT salary FROM tbl_salary
ORDER BY salary DESC
LIMIT 3,1
14
ответ дан 3 December 2019 в 14:06
поделиться

Вы можете сделать это, используя условие ограничения:

select * from tbl_salary order by salary desc limit 2,1;
2
ответ дан 3 December 2019 в 14:06
поделиться

Я уверен, что есть лучший способ сделать это, но:

ВЫБРАТЬ зарплату ИЗ tbl_salary ORDER BY salary DESC LIMIT n, 1

Где n - желаемая должность - 1 (т.е. для получения второй по величине зарплаты это будет LIMIT 1,1)

2
ответ дан 3 December 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: