zoukankan      html  css  js  c++  java
  • 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

     图例解释:

  • 相关阅读:
    处理emacs-org模式TODO的一个脚本
    MYSQL 数据类型
    Redis命令学习-Transaction(事务)
    成都青羊考场科目二考试分享
    地图入门_坐标系统
    microsoft SQL server,错误2
    搭建个人博客 方式2 使用jekyll
    WIN10 10招
    java正則表達式总结
    图解hdu5301Buildings
  • 原文地址:https://www.cnblogs.com/wodexk/p/10678403.html
Copyright © 2011-2022 走看看