首页 > 数据库 >SQL248 平均工资

SQL248 平均工资

时间:2024-07-22 22:17:43浏览次数:13  
标签:salary INSERT 01 SQL248 salaries 9999 date 平均工资

SQL248 平均工资

问题
查找排除在职(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

答案一(笨办法) 43ms

select
    avg(salary)
from
    salaries where to_date = '9999-01-01' and  emp_no not in (
        (select
            emp_no
        from
            salaries where to_date = '9999-01-01'
        order by salary
        limit
            1),
        (select
            emp_no
        from
            salaries where to_date = '9999-01-01'
        order by  salary desc
        limit
            1)
    );

答案二(优秀办法)44ms

SELECT (SUM(salary) - MAX(salary) - MIN(salary)) / (COUNT(1)-2) as avg_salary
FROM salaries where to_date = '9999-01-01';
```

标签:salary,INSERT,01,SQL248,salaries,9999,date,平均工资
From: https://www.cnblogs.com/eaapple/p/18317106

相关文章

  • SQL 平均工资
    系列文章目录文章目录系列文章目录前言前言前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。描述查找排除在职(to_date=‘9999-01-01’)员工的最大、最小salary之......
  • R语言主成分、因子分析、聚类对我国城镇私营单位就业人员平均工资数据研究与分析
    分析师:HuaruiHe数据显示2019年全国城镇私营单位就业人员年平均工资为53604元,比上年增长8.1%,而2019年全国城镇非私营单位就业人员年平均工资为90501元,名义增长率9.8%,实际上,一直以来城镇私营单位就业人员年平均工资都要高于非私营单位,并且增长率也高与非私营单位,主要原因是非私营单......
  • 求平均工资大于2500的部门平均工资是 having 新面孔比where强大的地方就在于它可以跟
       ---------------------------- ......
  • 力扣615(MySQL)-平均工资:部门与公司比较(困难)
    题目:给如下两个表,写一个查询语句,求出在每一个工资发放日,每个部门的平均工资与公司的平均工资的比较结果(高/低/相同)。表:salary employee_id字段是表employee中employee_id字段的外键。 对于如上样例数据,结果为:解释在三月,公司的平均工资是(9000+6000+10000)/......
  • SQL248 平均工资
    题目描述查找排除在职(to_date='9999-01-01')员工的最大、最小salary之后,其他的在职员工的平均工资avg_salary。思路1.求单列平均值使用聚合函数avg();2.排除在职(......
  • 2021年国家平均工资出炉,你又被平均了吗?
    近期,国家统计局发布2021全国平均薪资,IT业年平均工资突破20万位于榜首。分行业门类看,IT行业年平均工资私营、非私营均位列第一年平均工资最高的3个行业分别是信息传输、软件......
  • 平均工资:部门与公司比较
    一.题目:给如下两个表,写一个查询语句,求出在每一个工资发放日,每个部门的平均工资与公司的平均工资的比较结果(高/低/相同)。工资表:salaryidemployee_idamountpa......
  • C++ 用函数打印员工的平均工资
    #include<iostream>#include<windows.h>#include<string>usingnamespacestd;floataverageSalary(intn[],inti){floatsum=0;for(intx=0;x......