分类:Java
某公司经营不善,管理层决定进行降本增效,换句话说,就是裁员,于是,公司的经理来到了人力资源部:
“小张,公司要裁员,请你给我拟一个裁员名单。”
“经理,需要裁掉哪些员工?”
“是这样的,公司主要是想降低成本,所以需要把工资高于本部门平均工资的员工优化一下。”
小张听了,有点茫然不知所措,毕竟,这样的名单统计需求,自己从来没有做过。慌乱之中,她突然想起跟自己关系不错的程序员阿丘,他工作能力很强,特别是一些与数据相关的工作,是非常擅长的领域。
CREATE TABLE `t_employee` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`emp_name` varchar(32) NOT NULL COMMENT '姓名',
`dept_id` int(11) NOT NULL COMMENT '部门id',
`salary` decimal(11,2) NOT NULL COMMENT '薪资',
`hire_date` timestamp NULL DEFAULT NULL COMMENT '入职时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `t_employee` VALUES ('1', '李嘉薪', '1', '12000.00', '2023-09-08 19:37:19');
INSERT INTO `t_employee` VALUES ('2', '张升直', '1', '23000.00', '2023-09-08 19:37:52');
INSERT INTO `t_employee` VALUES ('3', '子由', '2', '5000.00', '2023-09-08 19:38:18');
INSERT INTO `t_employee` VALUES ('4', '承路', '2', '6000.00', '2023-09-08 19:38:44');
INSERT INTO `t_employee` VALUES ('5', '记建', '2', '6800.00', '2023-09-08 19:39:14');
INSERT INTO `t_employee` VALUES ('6', '时面', '2', '7200.00', '2023-09-08 19:40:23');
INSERT INTO `t_employee` VALUES ('7', '赵钱多', '1', '19000.00', '2023-09-08 19:40:56');
INSERT INTO `t_employee` VALUES ('8', '孙肃然', '1', '21800.00', '2023-09-08 19:41:30');
SELECT e.id,e.emp_name,e.dept_id,e.salary,g.avg_salary FROM t_employee e,
(SELECT dept_id, AVG(salary) avg_salary FROM t_employee GROUP BY dept_id) g
WHERE e.dept_id=g.dept_id AND e.salary>g.avg_salary
ORDER BY dept_id
“把工资高于部门平均工资、且去年绩效不是A的员工裁掉。”
“这个好办,安排。”
CREATE TABLE `t_performance` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`emp_id` int(11) NOT NULL COMMENT '员工id',
`result` varchar(10) DEFAULT NULL COMMENT '绩效',
`year` int(4) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `t_performance` VALUES ('1', '2', 'B', '2022');
INSERT INTO `t_performance` VALUES ('2', '7', 'A', '2022');
INSERT INTO `t_performance` VALUES ('3', '8', 'A', '2022');
INSERT INTO `t_performance` VALUES ('4', '5', 'B', '2022');
INSERT INTO `t_performance` VALUES ('5', '6', 'A', '2022');
SELECT e.id,e.emp_name,e.dept_id,e.salary,g.avg_salary FROM t_employee e,
(SELECT dept_id, AVG(salary) avg_salary FROM t_employee GROUP BY dept_id) g
WHERE e.dept_id=g.dept_id AND e.salary>g.avg_salary AND
EXISTS (select id from t_performance p
where p.year+1=year(now()) AND e.id=p.emp_id and p.result!='A')
ORDER BY dept_id
这正是经理想要的,去年这两个人的表现就不太好,工资还高,不裁他们裁谁?经理欣赏地看着小张:
“厉害,技能很全面啊。晚上请你吃饭!”
小张转告了阿丘,也很感谢他的帮忙。
阿丘没有很高兴的样子,反倒有点不安,未曾想,公司裁员,自己竟然成了“帮凶”!
以上故事纯属杜撰,主要是想讲解类似场景的sql写法,请勿对号入座,谢谢!
都看到这里了,请帮忙一键三连啊,也就是点击文末的在看、点赞、分享,这样会让我的文章让更多人看到,也会大大地激励我进行更多的输出,谢谢!
推荐阅读:
原文始发于微信公众号(互联网全栈架构):公司裁员,码农竟然成了“帮凶”?(剧情杜撰)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/173635.html