华为机考-求员工薪资中位数

现有salary表(员工ID,部门,薪水 ),请输出每个部门薪水中位数及对应的员工ID,输出字段员工ID,部门,中位数薪水。如果一个部门有偶数个员工,则输出中间两个员工ID和薪水。如果有两个员工薪水相同都可作为中位数,则随机取一位,不得两个都输出。请根据员工ID进行排序。(不得直接通过指定特定id得到预期结果)。

drop table if EXISTS employee;
create table employee
(
    Id      int primary key auto_increment,
    Company char,
    Salary  DECIMAL
);
insert into employee
values (1, 'A', 2341);
insert into employee
values (null, 'A', 341);
insert into employee
values (null, 'A', 15);
insert into employee
values (null, 'A', 15314);
insert into employee
values (null, 'A', 451);
insert into employee
values (null, 'A', 513);
insert into employee
values (null, 'B', 15);
insert into employee
values (null, 'B', 13);
insert into employee
values (null, 'B', 1154);
insert into employee
values (null, 'B', 1345);
insert into employee
values (null, 'B', 1221);
insert into employee
values (null, 'B', 234);
insert into employee
values (null, 'C', 2345);
insert into employee
values (null, 'C', 2645);
insert into employee
values (null, 'C', 2645);
insert into employee
values (null, 'C', 2652);
insert into employee
values (null, 'C', 65);
insert into employee
values (null, 'D', 2345);
insert into employee
values (null, 'D', 2645);
insert into employee
values (null, 'D', 2646);
insert into employee
values (null, 'D', 2652);
insert into employee
values (null, 'D', 65);


select Id, Company, Salary
from (
         select *,
                ROW_NUMBER() OVER (PARTITION BY Company order BY Salary asc,Company ASC)  r1,
                ROW_NUMBER() OVER (PARTITION BY Company order BY Salary desc,Company ASC) r2
         from employee
     ) as a
where r1 between r2 - 1 and r2 + 1
  group by Company,Salary
order by id asc;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
华为 Python 是指华为公司在招聘过程,通过使用器进行核Python编程能力。这种形式的试采用了自动化的方式,可以帮助华为更高效地筛选出具备优秀Python编程能力的应聘者。 华为 Python 主要围绕Python编程语言进行,通过将生放在一台电脑前,让其完成一系列的编程任务。这些任务可能包括基本的语法和控制语句的理解和运用,常见的数据结构和算法的实现,以及利用Python进行文件操作,网络编程等方面的能力。 相较于传统的面试方式,华为 Python 的好处在于它可以快速、客观地评估应聘者的Python编程能力。通过使用器评分系统,可以对每个生的答题情况进行统一的评估。这样一方面可以提高效率,节省人力成本,另一方面也可以避免因个人主观因素对试结果的影响。 对于应聘者而言,参加华为 Python 不仅是一种展示自己编程能力的会,也是锻炼自己代码编写和调试能力的会。因此,在参加前,应聘者应该对Python编程语言进行充分的学习和准备,熟悉Python的语法规则、常用的数据结构和算法,并且掌握一定的调试技巧和如何解决常见编程问题的能力。 总之,华为 Python 是华为公司在招聘过程采用的一种自动化核方式,可以帮助公司更高效地筛选出具备优秀Python编程能力的应聘者。对于应聘者而言,参加前应该做好充分准备,以展示自己的编程实力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值