SQL练习54:查找排除当前最大、最小salary之后的员工的平均工资avg_salary
SQL练习54:查找排除当前最大、最小salary之后的员工的平均工资avg_salary
题目链接:牛客网
题目描述
查找排除最大、最小salary
之后的当前(to_date = '9999-01-01' )
员工的平均工资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 |
解法
解题思想就是想办法去除最大工资和最小工资,这里使用子查询的方式,要注意一点的是题中少了一个条件,就是要限定to_date = '9999-01-01'
,表示获取当前数据。
SELECT AVG(salary) avg_salary
FROM salaries
WHERE to_date = '9999-01-01'
AND salary NOT IN (SELECT MAX(salary)FROM salariesWHERE to_date = '9999-01-01')
AND salary NOT IN (SELECT MIN(salary)FROM salariesWHERE to_date = '9999-01-01')
SQL练习54:查找排除当前最大、最小salary之后的员工的平均工资avg_salary相关推荐
- 牛客网数据库SQL实战54——查找排除当前最大、最小salary之后的员工的平均工资avg_salary
牛客网数据库SQL实战54--查找排除当前最大.最小salary之后的员工的平均工资avg_salary 题目描述 查找排除当前最大.最小salary之后的员工的平均工资avg_salary. CRE ...
- 数据库SQL实战-查找排除当前最大、最小salary之后的员工的平均工资avg_salary(mysql)
1. 查找字符串'10,A,B' 1.1 题目描述 查找字符串'10,A,B' 中逗号','出现的次数cnt. 1.2 语句实现 select length("10,A,B") - ...
- SQL-54 查找排除当前最大、最小salary之后的员工的平均工资avg_salary。
题目描述 查找排除当前最大.最小salary之后的员工的平均工资avg_salary. CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL, `sa ...
- 查找排除当前最大、最小salary之后的员工的平均工资avg_salary
sql实战 查找排除当前最大.最小salary之后的员工的平均工资avg_salary 问题描述 Sql语句 问题描述 查找排除最大.最小salary之后的当前(to_date = '9999-01- ...
- SQL54 查找排除当前最大、最小salary之后的员工的平均工资avg_salary
描述 查找排除最大.最小salary之后的当前(to_date = '9999-01-01' )员工的平均工资avg_salary. drop table if exists `salaries` ; ...
- sql查询本年度员工的平均工资
现在有这样一条需求: 求本年度内入职员工的平均工资 核心点: 本年度内的员工的平均工资,如果是今年以前入职的查询今年的 如果是今年入职的查询今年入职的平均工资. create database Use ...
- SQL Server内存故障排除
翻译自:https://blogs.msdn.microsoft.com/karthick_pk/2012/06/15/troubleshooting-sql-server-memory/ SQL S ...
- sql server键查找_如何查找SQL Server版本
sql server键查找 In this article, we will explore how to find the SQL Server version details with vario ...
- 剑指offer java -查找旋转数组的最小数字
/** * Created by wqc on 2017/7/18. * 查找旋转数组的最小数字 * 把一个数组最开始的若干个元素搬到数组的末尾,称为数组的旋转 * 输入一个递增排序的数组的一个旋转, ...
最新文章
- 51CTO博客弹出框精彩博文记录【2013年第二季度】
- php显示玩家,php.取得玩家IP
- java 图片导出_java导出含图片的word
- HEU 5039 Move Woods
- 如何使用final阻止重载?如何使用final阻止继承?
- 微信 for Mac 3.1.0 测试版发布,支持发朋友圈啦!
- 明天结束一个人的生活
- Python学习总结(3)——数字类型
- Pomelo MMORPG
- iOS-高德地图API的定位与搜索功能
- 记一次 Ruby 内存泄漏的排查和修复
- 【图灵机器人】图灵机器人API V2版使用采坑指南
- excel表格末尾添加一行_Excel这些办公必备小技巧,Excel表格轻松搞定
- SQL对date类型的操作
- protel 99se元件封装名称
- 在中国大陆,XGP对比Steam有什么优势?
- AtCoder Beginner Contest 272「A」「B」「C」「D bfs」「E 思维」
- 【渝粤教育】国家开放大学2018年春季 7067-21T (1)康复护理学 参考试题
- 1159. Electrical Outlets
- pytorch模型推理提速