如何明智地获得第二高薪部门?

时间:2019-05-02 10:49:35

标签: mysql greatest-n-per-group

假设每个部门有一些员工。我们共有3个部门。下面是名为“ employee”的示例源表

emp dept_id salary
A    10     1000
B    10     2000
C    10     3000
D    20     7000
E    20     9000
F    20     8000
G    30     17000
H    30     15000
I    30     30000
j    30     30000
k    30     17000

同一部门可能存在相同的薪水。

我使用具有mysql-5.7.23的Wamp-server

我想喜欢:

B    10     2000
F    20     8000
G    30     17000

1 个答案:

答案 0 :(得分:2)

我认为有几种方法可以解决问题。在我这边遵循解决方案,效果很好。

SELECT *
From employee e2 
WHERE e2.salary = (SELECT distinct salary FROM employee where dept_id=e2.dept_id order by salary desc limit 1,1);

我只需要部门最高的薪水值,这是我项目中下一个操作的输入数组。最后我用

SELECT e2.dept_id, max(e2.salary) From employee e2 WHERE e2.salary = (SELECT distinct salary FROM employee where dept_id=e2.dept_id order by salary desc limit 1,1) group by e2.dept_id