某公司员工信息数据及员工薪资信息数据如下: 员工信息表staff_tb(staff_id-员工id,staff_name-员工姓名,staff_gender-员工性别,post-员工岗位类别,department-员工所在部门),如下所示: 员工薪资信息表salary_tb(salary_id-薪资信息id,staff_id-员工id,normal_salary-标准薪资,dock_salary-扣除薪资),如下所示: 问题:请统计各个部门平均实发薪资和各部门男、女员工平均实发薪资各是多少? 注:实发薪资=标准薪资-扣除薪资 要求输出:部门,平均实发薪资(保留2位小数)按照部门平均薪资降序排列(当出现不存在某类型员工,平均薪资用0.00表示) department: 部门名称。 average_actual_salary: 每个部门员工的实际平均薪资,保留了两位小数。 average_actual_salary_male: 每个部门男员工的实际平均薪资,保留了两位小数。 average_actual_salary_female: 每个部门女员工的实际平均薪资,保留了两位小数。 示例数据结果如下: 解释:部门dep2有3个员工: 实发薪资和性别分别为:3号female员工11000-2200=8800、5号male员工16000-2500=13500、7号female员工60000-6000=54000 故结果为dep2部门平均薪资是(8800+13500+54000) 3=25433.33、average_actual_salary_male是135001=13500.00、average_actual_salary_female是(8800+54000)2=31400.00 其他结果同理。
示例1

输入

drop table if exists staff_tb ;
drop table if exists salary_tb ;
-- 创建 staff_tb 表数据
CREATE TABLE staff_tb (
staff_id int(11) NOT NULL,
staff_name varchar(16) NOT NULL,
staff_gender char(8) NOT NULL,
post varchar(11) NOT NULL,
department varchar(16) NOT NULL,
PRIMARY KEY (staff_id));

-- 插入 staff_tb 表数据
INSERT INTO staff_tb (staff_id, staff_name, staff_gender, post, department) VALUES
(1, 'Angus', 'male', 'Financial', 'dep1'),
(2, 'Cathy', 'female', 'Director', 'dep1'),
(3, 'Aldis', 'female', 'Director', 'dep2'),
(4, 'Lawson', 'male', 'Engineer', 'dep1'),
(5, 'Carl', 'male', 'Engineer', 'dep2'),
(6, 'Ben', 'male', 'Engineer', 'dep1'),
(7, 'Rose', 'female', 'Financial', 'dep2');

-- 创建 salary_tb 表数据
CREATE TABLE salary_tb (
salary_id int(11) NOT NULL,
staff_id int(11) NOT NULL,
normal_salary int(11) NOT NULL,
dock_salary int(11) NOT NULL,
PRIMARY KEY (salary_id));
-- 插入 salary_tb 表数据
INSERT INTO salary_tb (salary_id, staff_id, normal_salary, dock_salary) VALUES
(10, 1, 15000, 3000),
(11, 2, 14000, 2800),
(12, 3, 11000, 2200),
(13, 4, 13000, 2400),
(14, 5, 16000, 2500),
(15, 6, 9000, 1200),
(16, 7, 60000, 6000);

输出

department|average_actual_salary|average_actual_salary_male|average_actual_salary_female
dep2|25433.33|13500.00|31400.00
dep1|10400.00|10133.33|11200.00
加载中...