zoukankan      html  css  js  c++  java
  • 部门中薪资超过部门平均薪资的员工姓名及薪资

    部门中薪资超过部门平均薪资的员工姓名及薪资

    # 题表
    
    # 建表
    create table emp(
      id int not null unique auto_increment,
      name varchar(20) not null,
      sex enum('male','female') not null default 'male', #大部分是男的
      age int(3) unsigned not null default 28,
      hire_date date not null,
      post varchar(50),
      post_comment varchar(100),
      salary double(15,2),
      office int, #一个部门一个屋子
      depart_id int
    );
    
    #插入记录
    #三个部门:教学,销售,运营
    insert into emp(name,sex,age,hire_date,post,salary,office,depart_id) values
    ('jason','male',18,'20170301','张江第一帅形象代言',7300.33,401,1), #以下是教学部
    ('egon','male',78,'20150302','teacher',1000000.31,401,1),
    ('kevin','male',81,'20130305','teacher',8300,401,1),
    ('tank','male',73,'20140701','teacher',3500,401,1),
    ('owen','male',28,'20121101','teacher',2100,401,1),
    ('jerry','female',18,'20110211','teacher',9000,401,1),
    ('nick','male',18,'19000301','teacher',30000,401,1),
    ('sean','male',48,'20101111','teacher',10000,401,1),
    
    ('歪歪','female',48,'20150311','sale',3000.13,402,2),#以下是销售部门
    ('丫丫','female',38,'20101101','sale',2000.35,402,2),
    ('丁丁','female',18,'20110312','sale',1000.37,402,2),
    ('星星','female',18,'20160513','sale',3000.29,402,2),
    ('格格','female',28,'20170127','sale',4000.33,402,2),
    
    ('张野','male',28,'20160311','operation',10000.13,403,3), #以下是运营部门
    ('程咬金','male',18,'19970312','operation',20000,403,3),
    ('程咬银','female',18,'20130311','operation',19000,403,3),
    ('程咬铜','male',18,'20150411','operation',18000,403,3),
    ('程咬铁','female',18,'20140512','operation',17000,403,3)
    ;
    
    #ps:如果在windows系统中,插入中文字符,select的结果为空白,可以将所有字符编码统一设置成gbk
    
    select name,salary,post from 
    (
    (select name, salary, post from emp ) as t1
    inner join
    (select post as post2,avg(salary) as avg from emp group by post) as t2 on t1.post = t2.post2
    ) 
    where salary > avg
    
    # 结果:
    mysql> select  name,salary,post from                                                                                                             -> (
        -> (select  name, salary, post from emp ) as t1
        -> inner join
        -> (select post as post2,avg(salary) as avg from emp group by post) as t2 on t1.post = t2.post2
        -> ) 
        -> where salary > avg;
    +-----------+------------+-----------+
    | name      | salary     | post      |
    +-----------+------------+-----------+
    | egon      | 1000000.31 | teacher   |
    | 歪歪      |    3000.13 | sale      |
    | 星星      |    3000.29 | sale      |
    | 格格      |    4000.33 | sale      |
    | 程咬金    |   20000.00 | operation |
    | 程咬银    |   19000.00 | operation |
    | 程咬铜    |   18000.00 | operation |
    | 程咬铁    |   17000.00 | operation |
    +-----------+------------+-----------+
    8 rows in set (0.00 sec)
    
  • 相关阅读:
    20172301 2018-2019-1《程序设计与数据结构》课程总结
    20172301 哈夫曼树实验报告
    20172301 《Java软件结构与数据结构》实验三报告
    20172301 《程序设计与数据结构》第九周学习总结
    20172301 《Java软件结构与数据结构》实验二报告
    20172301 《程序设计与数据结构》第八周学习总结
    20172301 《程序设计与数据结构》第七周学习总结
    20172301 《程序设计与数据结构》第六周学习总结
    20172301 《程序设计与数据结构》课堂测试修改报告
    20172301 《程序设计与数据结构》第五周学习总结
  • 原文地址:https://www.cnblogs.com/shuchengyi/p/10871445.html
Copyright © 2011-2022 走看看