我有一个名为“emp”的表。列是: uid、emp_name、emp_dept、emp_sal。
现在我想找到每个部门员工第二高的工资。 请建议我查询。 我已经使用了这个查询,但它没有显示我想要的结果::
select max(emp_sal) from emp where emp_sal<(select max(emp_sal) from emp)
group by emp_dept
最佳答案
由于您使用的是 MySql,因此可以利用 limit 子句中的 offset
参数。
SELECT e.emp_dept,
( SELECT p.emp_sal
FROM emp p
WHERE p.emp_dept = e.emp_dept
ORDER BY p.emp_sal DESC
LIMIT 1,1) secondHighestSal
FROM emp e
GROUP BY e.emp_dept
关于mysql - 明智地找到表部门中第二大的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4894632/