Mysql中查询部门工资第二高的人员信息

数据库中有表如下:

雇员表

需求:查出每个部门的工资第二高的人员信息。

解题思路:根据部门区分,再对每个部门中人员的工资排名。

该题不能使用group by 进行分组,原因为group by 的执行顺序在where之后。因此使用变量达到rank的效果。

1.首先根据部门对同一个部门中的所有人员先按部门名称排序(区分每一个部门),再按工资的降序排列( 工资排名)。

需要定义两个变量

set @rank = 0;           #保存当前用户在该部门中工资的位数

set @dept_name = '';      #保存当前部门




得到每一个人在当前部门的工资排名。此时需要每个部门工资排名第几的只需要将上一步查询出的结果作为一张表,例如


你可能感兴趣的:(Mysql中查询部门工资第二高的人员信息)