Чтобы получить * N * -ое наибольшее значение, лучше использовать это решение:
SELECT * FROM `employees` WHERE salary =
(SELECT DISTINCT(salary) FROM `employees`
ORDER BY salary DESC LIMIT {N-1},1);
или вы можете попробовать:
SELECT * FROM `employees` e1 WHERE
(N-1) = (SELECT COUNT(DISTINCT(salary))
FROM `employees` e2
WHERE e1.salary < e2.salary );
N = 2 для второго по величине
N = 3 для третьего по величине и т. Д.