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

标签 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

最佳答案

我认为有几种方法可以解决这个问题。遵循我这边的解决方案并且工作正常。

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) 来自员工 e2 WHERE e2.salary = (SELECT distinct salary FROM employee where dept_id=e2.dept_id order by salary desc limit 1,1) 按 e2.dept_id 分组

关于mysql - 如何明智地获得第二高薪部门?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55950786/

相关文章:

mysql - 如何使用jsp代码将mysql中的日期格式从yyyy/dd/mm转换为mm/dd/yyyy?

php - 无法使用 google app engine 连接到 mysql 数据库

mysql - 为每个日期选择行的子集

php - MySql Select查询(JOIN上限制选择)

sql - 尝试连接表并按一个不同的最大值进行选择

mysql - concat() 存储过程错误

mysql - 根据id在mysql结果中获取数据的计数

php - 如何制作畅销书排行榜?

mysql - 生成此报告的最有效方法是什么?

Mysql-如何在案例数达到峰值时获取最大日期