Mysql_案例1:查询出每个部门工资最高的员工信息


案例:查询出每个部门工资最高的员工信息

1、背景:当前数据库有employee表和department表,数据分别如下:

  employee表:

 

 department表:

 

 思考步骤:

1、从employee表里查询出每个部门的最高薪资,作为一张临时表 t

2、将临时表 t 和 employee表进行内连接,并新增一列,显示employee表里每个员工所在部门对应的最高薪资

3、再用 employee表里每个员工的薪资字段salary 和 部门最高薪资字段列maxsalary进行判断,查询出相等数据,此处则查询出了每个部门最高薪资的员工有哪些,作为表 tt 

4、因为表 tt 没有部门名称,所以我们再将表 tt 和department 表进行内链接,查询部门id相等的数据,从而查询出每个员工所在的部门名称

 

SQL语句:

 1 SELECT tt.*,d.name
 2 from
 3 (
 4             SELECT e.*,t.maxsalary  
 5             from (
 6                         SELECT departmentid,MAX(salary) as maxsalary
 7                         from employee
 8                         GROUP BY departmentid
 9             ) as t 
10 
11             INNER JOIN
12                                 employee as e
13 
14             on   
15                                 t.departmentid = e.departmentid
16 
17             WHERE 
18                                 e.salary=t.maxsalary
19 ) as tt
20 
21 INNER JOIN
22         department as d 
23 on 
24         tt.departmentid = d.id
25 
26 ORDER BY tt.departmentid,tt.id

 图例解释:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM