我怎么会去查询从我的Employee表中的所有员工的第二大薪水是多少?在MySQL
试试这个,它应该必须工作。
SELECT name, salary
FROM employees
WHERE salary = (SELECT MAX(salary) FROM employees WHERE salary < (SELECT MAX(salary) FROM employees))
或者你可以试试这个为好。
/* looking for 2nd highest salary -- notice the '=2' */
SELECT name,salary FROM employees
WHERE salary = (SELECT DISTINCT(salary) FROM employees as e1
WHERE (SELECT COUNT(DISTINCT(salary))=2 FROM employees as e2
WHERE e1.salary <= e2.salary)) ORDER BY name
薪金降序排列,然后用LIMIT
:
select *
from employees
order by salary desc
limit 1,1
第一装置1来跳过第一行,所述第二装置1返回一行。
你可以试试下面 -
select name, max(salary) from employee where salary < (select max(salary) from employee)
group by name;