SQL54 平均工资
描述
查找排除在职(to_date = '9999-01-01' )员工的最大、最小salary之后,其他的在职员工的平均工资avg_salary。
CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
如:
INSERT INTO salaries VALUES(10001,85097,'2001-06-22','2002-06-22');
INSERT INTO salaries VALUES(10001,88958,'2002-06-22','9999-01-01');
INSERT INTO salaries VALUES(10002,72527,'2001-08-02','9999-01-01');
INSERT INTO salaries VALUES(10003,43699,'2000-12-01','2001-12-01');
INSERT INTO salaries VALUES(10003,43311,'2001-12-01','9999-01-01');
INSERT INTO salaries VALUES(10004,70698,'2000-11-27','2001-11-27');
INSERT INTO salaries VALUES(10004,74057,'2001-11-27','9999-01-01');
输出格式:
avg_salary |
---|
73292 |
示例1
输入:
drop table if exists `salaries` ; CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL, `salary` float(11,3) NOT NULL, `from_date` date NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`from_date`)); INSERT INTO salaries VALUES(10001,85097,'2001-06-22','2002-06-22'); INSERT INTO salaries VALUES(10001,88958,'2002-06-22','9999-01-01'); INSERT INTO salaries VALUES(10002,72527,'2001-08-02','9999-01-01'); INSERT INTO salaries VALUES(10003,43699,'2000-12-01','2001-12-01'); INSERT INTO salaries VALUES(10003,43311,'2001-12-01','9999-01-01'); INSERT INTO salaries VALUES(10004,70698,'2000-11-27','2001-11-27'); INSERT INTO salaries VALUES(10004,74057,'2001-11-27','9999-01-01');
复制输出:
73292.000
-- 题目:查找排除在职员工的最大、最小salary之后,其他的在职员工的平均工资
-- 方法一:采用子查询的方法
/*
select avg(salary)
from salaries s
where s.salary not in (select max(salary)
from salaries s
wheres.to_date = '9999-01-01' )
ands.salary not in (select min(salary)
from salaries s
wheres.to_date = '9999-01-01' )
and s.to_date = '9999-01-01'-- 方法二:使用聚合函数,不适用子查询,使用聚合函数,不用子查询
-- COUNT(1) 代表所有数据长度, -2 代表减去最大最小值的两个长度
-- 这种情况,忽略了多个最大值和多个最小值的情况
select (sum(salary)-max(salary)-min(salary))/(count(1)-2) avg_salary
fromsalaries s
where to_date = '9999-01-01';-- 解法二 窗口函数select avg(ss.salary)
from (select *,row_number() OVER(order by salary) r1,row_number() over(order by salary desc) r2from salarieswhere to_date = '9999-01-01') ss
where ss.r1 <> 1and ss.r2 <> 1and to_date = '9999-01-01'*/ -- 解法四: 把最大和最小去掉 select avg(salary)
from (select * ,max(salary) over() s1,min(salary) over() s2fromsalarieswhere to_date = "9999-01-01") sswhere ss.salary <ss.s1and ss.salary >ss.s2
SQL54 平均工资相关推荐
- SQL-54 查找排除当前最大、最小salary之后的员工的平均工资avg_salary。
题目描述 查找排除当前最大.最小salary之后的员工的平均工资avg_salary. CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL, `sa ...
- SQL54 查找排除当前最大、最小salary之后的员工的平均工资avg_salary
描述 查找排除最大.最小salary之后的当前(to_date = '9999-01-01' )员工的平均工资avg_salary. drop table if exists `salaries` ; ...
- 查询出每个部门比本部门平均工资高的职工人数
这句话,我裂开了. 部门表dept如下: 员工表emp如下: 我感觉有两种理解. 1.找出部门内,工资高于平均工资的员工数 with temp(avg_sal,deptno) as (select a ...
- 2019宁波本科计算机招聘工资,@宁波人,76282!2019年度平均工资是这么多,你拖后腿了吗?...
原标题:@宁波人,76282!2019年度平均工资是这么多,你拖后腿了吗? 今天,宁波市统计局发布2019年宁波市平均工资, 我市全社会单位就业人员年平均工资76282元,高于全省4759元.一起来看 ...
- 2020年2月全国程序员工资统计,平均工资13716元,你被平均了吗?
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 来自| CSDN 作者 | 有数可据 https://blog.csdn.ne ...
- 2021年6月程序员平均工资 15052,你给行业拖后腿了吗?
上周我们发布了一篇名为<2021年6月程序员工资统计,平均15052元>的文章,引起了网友们的广泛讨论. 据文章中调查结果显示,"2021年6月全国招收程序员435501人,平均 ...
- 程序员真香!IT 业 2020 年平均工资最高
整理 | 王晓曼 出品 | 程序人生 (ID:coder _life) 5月19日,国家统计局发布2020年平均工资数据,随后,相关话题便冲上微博热搜. 程序员真香! 据国家统计局发布的数据显示,20 ...
- SQL-16 统计出当前各个title类型对应的员工当前薪水对应的平均工资。结果给出title以及平均工资avg。...
题目描述 统计出当前各个title类型对应的员工当前薪水对应的平均工资.结果给出title以及平均工资avg. CREATE TABLE `salaries` ( `emp_no` int(11) N ...
- 7月平均工资下来,Java程序员哭笑不得!
2020 魔幻开局,不少企业开始缩减招聘名额,更别说涨薪了!据第三方统计,今年 7 月程序员平均工资为 14357 元.作为第一编程语言的 Java,平均工资 14448 元(6 月为 14433 元 ...
最新文章
- IntelliJ IDEA 问题总结之中的一个 —— jar包、assets、maven、git
- pthread_cond_broadcast相关
- php和python写爬虫-可以写爬虫的那么多,为什么只有python火了?
- OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks
- 【Spring学习】IoC、DI、AOP入门学习
- 7z压缩文档的powershell示例
- sed 删除某一行_Linux常用命令三剑客之sed,您真的会用吗?
- WebAssembly 为何能改变软件的分发?
- python post 表单类数据_python post content-type:multipart/form-data 类型的表单数据
- 革新—决定磁带未来的最大挑战
- 同事线上埋的这个坑,我整整找了3天3夜
- 【车道线检测与寻迹】2月13日 CV导论+数字图像处理与opencv实践+canny边缘检测
- opencv-python 霍夫变换
- 武汉男人一个月要赚多少钱,老婆才不用上班?心碎成渣……
- JAVAweb JSP飞机订票系统航空机票预订销售系统(机票预订系统)网上机票预订飞机订票
- 三维导热问题的ADI-TDMA算法
- Android下监听返回键、home键、任务键
- java向手机号发送短信验证码
- 【KNIME案例】参数化驱动工作流调用业务人员建立的脚本
- java关键字super指什么_java 关键字super详解及用法