http://www.cnblogs.com/zhangzhu/archive/2012/05/10/2494978.html

一个SQL实现薪水大于所在部门平均薪水的员工

id    empName    DeptId    empSalary

1          张三              1            2500
2          李四              1            2400
3          王二              2            2600
4          麻子              2            2500

select * from emp e1 where e1.empSalary > (select avg(empSalary) from emp e2 where e1.DeptId = e2.DeptId)

查询结果:
1          张三              1            2500
3          王二              2            2600

补充:

今天在跟同事交流的时候,发现昨天少考虑了一样东西,性能。
这个问题还有一种解决方式,SQL如下:

select  e1.* 
from emp e1 ,(select DeptId,avg(empSalary) as deptSalary from emp group by DeptId) as e2 
where e1.DeptId = e2.DeptId and e1.empSalary > e2.deptSalary(测试通过)

现在来分析这两种写法的差别在哪。第一种写法看似更简捷,语句少了不少,第二种似乎更麻烦。其实不然,第一种写法是比第二种效率更低,为什么。原因就在于 emp中员工每次比较薪水时,都会计算一次该员工所属部门的平均薪水,这样emp中有4条记录,就会计算4次。而第二种方式只计算一次部门的评价薪水。如 果表中数据量比较大,对性能的影响会更明显,所以第二种方式更佳。

工欲善其事,必先利其器。

找出那些工资高于他们所在部门的平均工资的员工相关推荐

  1. mysql 部门工资_哪些员工的工资大于所在部门的平均工资?用mysql查询语句

    1这是表的数据:createtableemp_hiloo(empnoint(8),enamevarchar(20),jobvarchar(15),salaryint(8),bonusint(8),hi ...

  2. win7为什么没有计算机,教你win7如何快速找出电脑没声音问题所在-win7之家

    在使用电脑的时候总是会遇到各种各样的问题,最近有不少用户发现电脑没声音,音箱和耳机都是没有声音的,这种现象是经常发生的事情,但是导致这种现象的原因也是很多的,如果要一一的排除的话又要浪费会很多时间又不 ...

  3. mysql查询平均工资最低的部门_查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名...

    如题: 查询出部门名称.部门的员工数.部门的平均工资.部门的最低收入雇员姓名和最高收入雇员的姓名 这是oracle的默认Scott用户以下的emp 和 dept 表间的一道思考题. 雇员表(emp) ...

  4. 查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名...

    如题: 查询出部门名称.部门的员工数.部门的平均工资.部门的最低收入雇员姓名和最高收入雇员的姓名 这是oracle的默认Scott用户以下的emp 和 dept 表间的一道思考题. 雇员表(emp) ...

  5. 查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名

    如题: 查询出部门名称.部门的员工数.部门的平均工资.部门的最低收入雇员姓名和最高收入雇员的姓名 这是oracle的默认Scott用户下面的emp 和 dept 表间的一道思考题. 雇员表(emp) ...

  6. 6.组函数(avg(),sum(),max(),min(),count())、多行函数,分组数据(group by,求各部门的平均工资),分组过滤(having和where),sql优化...

     1组函数 avg(),sum(),max(),min(),count()案例: selectavg(sal),sum(sal),max(sal),min(sal),count(sal) from ...

  7. 6.组函数(avg(),sum(),max(),min(),count())、多行函数,分组数据(group by,求各部门的平均工资),分组过滤(having和where),sql优化

     1组函数 avg(),sum(),max(),min(),count()案例: selectavg(sal),sum(sal),max(sal),min(sal),count(sal) from ...

  8. 求每个部门的平均工资

    查询每个部门的平均工资(而且显示部门名称). 1* select deptno,avg(sal) from emp group by deptno having (deptno in (select ...

  9. 海口java工资水平2017,2019年海口平均工资公布,海口平均工资水平最新数据

    海口市平均工资是什么?2017年海口市的平均工资是多少,下面现代语文网小编就关于2017年海口市平均工资相关信息给大家整理下! 平均工资,是一项反映工资总体水平的指标,指企业.事业.机关单位的职工在一 ...

最新文章

  1. Python 关键字 global、nonlocal、yield用法
  2. C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例
  3. Echarts地图添加自定义图标
  4. spring boot 集成mybatis连接oracle数据库
  5. .NET 二维码生成(ThoughtWorks.QRCode)
  6. Pycharm 入门问题
  7. 实战系列-IDEA中Spring MVC实现接口功能
  8. java插件不启动_java-插件安装后Eclipse启动问题
  9. 教程 | 如何使用Docker、TensorFlow目标检测API和OpenCV实现实时目标检测和视频处理
  10. 2020小美赛【A题翻译+思路】
  11. Comsol中引用matlab函数
  12. Workbook.SaveAs方法
  13. 笔记:常见的约束问题求解算法——乘子法和Frank-Wolfe算法
  14. 通过Python计算经纬度点任意角度任意距离的经纬度点
  15. 用Kodi访问Win10共享文件夹
  16. 特殊空白字符无法过滤
  17. 网页跳转微信打开指定页面
  18. PDF图书开放免费下载来源
  19. 关于汽车信息安全测试的公司-阿古斯
  20. 分手快乐---(哪个更好呢)

热门文章

  1. 没有版权意识,中国软件业永远只能是代码加工厂
  2. 1.3-原来这才是大家常用的上位机开发平台
  3. day5 from 金角大王
  4. 国家开放大学2023春《马克思主义基本原理概论-试卷A》大作业终考任务参考答案范文合集
  5. 假技术po主之笑话乐翻天
  6. 口袋Delphi源码
  7. 利用IDEA快速生成实体类
  8. SpringBoot 2.0+ /springframwork 5 自带的websocket, 实现后台主动推消息给前端,及前端发消息给后台(全双工模式通信)
  9. Flink与Kafka的爱恨情仇
  10. C学习:一个负数补码把我整蒙了